当前位置: 首页 > 面试题库 >

如何上传图像并将其保存在数据库中?

吴德辉
2023-03-14
问题内容

我必须使用JavaScript创建一个表单,用户将上载JPG文件并与其他信息(例如名称,电子邮件等)一起提交。当用户单击提交时,表单中的所有信息将被加载到值对象中。对于图像文件,我将其设置为byte[]

所以假设:

public String name;
public String email;
public byte[] logo;

我还设置了一个servlet来处理提交,但是我不确定如何开始。上传如何进行?用户提交时,如何获取图像信息?这是屏幕截图:http
:
//imageshack.us/f/32/77675354.png/我需要转换该图像并将其保存为a,byte[]然后转换为blob,以便将其插入到表中。


问题答案:

对于文件上传部分,您需要enctype="multipart/form- data"在HTML表单上进行设置,以便Web浏览器将发送文件内容,并且您希望request.getPart()在servlet的doPost()方法中使用来将文件获取为InputStream。有关具体的代码示例,另请参见如何使用JSP
/ Servlet将文件上传到服务器?

然后,保存此InputStream的DB,只需使用PreparedStatement#setBinaryStream()BLOB/
varbinary/ bytea列或任何列表示您最喜欢的数据库引擎“二进制数字”。

preparedStatement = connection.prepareStatement("INSERT INTO user (name, email, logo) VALUES (?, ?, ?)");
preparedStatement.setString(1, name);
preparedStatement.setString(2, email);
preparedStatement.setBinaryStream(3, logo);
// ...

您不一定需要将其转换InputStreambyte[],也不会提高内存效率。假设有100个用户同时上传10MB的图像,那么此时将分配1GB的服务器内存。



 类似资料:
  • 我在后端使用Rails API,在前端使用ReactJS。我也使用载波在后端处理我的图像。我试图上传我的图像并将其发送到后端。使用简单的超文本标记语言上传器在前端捕获图像文件。 这是我的uploader.jsx 以上代码是此解决方案的精确副本。我使用formData和axios将数据推送到后端。但数据在数据库中存储为“nil”值。安慰log(formData)给出一个空哈希。 我在后端的控制器代码

  • 问题内容: 我的客户在php + mysql中创建了一个脚本,该脚本将图像直接保存在数据库中,并且每个图像都有这样的url:www.example.com/image.php?id=421 您认为这是一个非常错误的解决方案?我应该重建所有站点吗? 每天大约有1000次访问,数据库中大约有600张图像。 问题答案: 图像文件是文件,除非有充分的理由将它们存储在数据库中,否则它们应属于文件系统,在文件

  • 我正在使用一个Vaadin上传组件,到目前为止,我已经成功地将一个图像上传到一个目录,并在成功上传后在面板组件中显示它。在这之后,我想做的是把它也插入到数据库中。我有一个名为Show的表,它有一个名称、日期和图像。在Show类中,我尝试将图像作为字节数组或Blob。 在上传成功的方法中,我想将文件转换为字节数组,到目前为止我已经尝试过了: 我也试过: uIP它实际上是我的上传ImagePresen

  • 我需要在数据库中按kb保存大小,以便在前端查看,这是我正在使用的控制器。我使用的是Laravel 5.8 所以我的问题是,拉雷维尔是否提供了处理这种情况的任何假象?或者任何其他框架都有更适合问题的功能是什么?

  • 我想知道如何上传一个图像通过API邮递员在拉威尔和保存到我的数据库,这是phpMyAdmin。当我尝试在postman中运行代码时,会显示以下内容: 这是我目前的代码: 横幅积垢控制器: 横幅型号: 任何关于我做错了什么的想法,我想现在就得到这个,因为我有很多表格需要创建。 希望有人能帮助我开始。谢谢。

  • 问题内容: 我想将图像的下载URL放入Firebase数据库中。我可以将图像上传到存储中,但无法弄清楚如何将URL与其余的“帖子”一起放入数据库。 问题答案: 像这样组织您和func: 接下来,只需连接并保存到您的节点即可。 您也可以查看我有关上传数据并将URL保存到数据库的答案 希望能帮助到你