java - 使用java在mysql中保存文件路径,我这样做对吗?

标签 java mysql

我正在开发一个可以将某些文件上传到服务器的小型项目。我正在使用java和mysql。根据我读到的内容,“正确的方法”是将文件保存到我的服务器中的文件夹中,并将文件路径放入 mysql 中。

我的代码的一部分:

File source = new File(fileChooser.getSelectedFile().getPath());
                    File dest = new File(destChooser.getSelectedFile().getPath());

                    String tempUpdate1 = "Insert into images (ID, file_name, file_path)"
                            + "VALUES ('"+ID+"' , '"+fileChooser.getSelectedFile().getName()+"' , '"+destChooser.getSelectedFile().getPath()+"')";
                    conn = Connect.ConnectDB();
                    Statement stemt2 = conn.createStatement();
                    stemt2.executeUpdate(tempUpdate1);
                    FileUtils.copyFileToDirectory(source, dest);
                    JOptionPane.showMessageDialog(null, "File Uploaded Successfully!");

然后我尝试运行它。它成功地将文件复制到我想要的文件夹。问题出在我的 mysql 表,我保存文件的路径。 表格是这样的:

 |   ID   |   file_name   |      file_path        |
 |   1    |   sample.docx |  C:UsersMEDesktopest  |
 |   2    |   sample.jpg   |  C:UsersMEDesktopest  |

我尝试使用 JOptionPane 自己查看文件路径的输出,它返回正常的分隔符,但使用相同的变量并将其放入 mysql 中,这就是我得到的结果,如上所示,没有分隔符。

我真的做对了吗?我按照与此相关的主题的指示进行了操作,但似乎没有人提示这条路径。我想知道是否在某个地方做错了什么。

我计划在项目进展过程中使用文件路径访问该文件。只是想询问路径文件是否可访问,因为我没有看到任何分隔符,例如“//”、“/”或“\”

最佳答案

这几乎是好的。

假设您有两个以相同方式命名的文件。您的服务器上只能拥有其中之一。我会以编码名称保存文件,例如保存操作时以米为单位的时间。

您的表将包含原始名称 sample.jpg 和文件名 49473996034732 例如(当然在单独的列中)。这样您就可以保存任意数量的 sample.jpg。请求链接应指向文件名 49473996034732,以便您始终知道请求的是哪个文件。 然后作为响应,当您将内容设置为正确的类型时,您可以设置用户友好的名称。

修改后的表格

| ID | file_name | server_file_name | file_path |

| 1 | sample.docx | 49473996034732 | C:UsersMEDesktopest |

| 3 | sample.jpg | 49473996034850| C:UsersMEDesktopest |

| 2 | sample.jpg | 49473996034988 | C:UsersMEDesktopest |

第二件事是我注意到您允许用户选择包含文件的目标文件夹。不应该是固定位置吗?这样它会更像服务器行为。但我猜这只是在 Swing 中快速编码的示例代码

关于java - 使用java在mysql中保存文件路径,我这样做对吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27892108/

相关文章:

java - 在我的手机游戏中添加图像

java - 使用 while 循环让用户输入多个 int 并找到最大值和最小值

java - Spring batch Input resource must exist (reader is in 'strict' mode)错误

mysql - 优化长 mysql 查询

mysql - mysql中行组的随机顺序

php - MySQL检查表是否存在而不抛出异常

mysql - 从两个表中获取指定格式的数据

java - 如何处理持久的 http 请求

java - 如何在 SharedPreferences 中存储键值对?

mysql - 如何在 Ruby on Rails 中从多个表中获取数据?