Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/343.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用htm输入类型=文件存储图像_Java_Html_Jsp_File Upload_Input - Fatal编程技术网

Java 使用htm输入类型=文件存储图像

Java 使用htm输入类型=文件存储图像,java,html,jsp,file-upload,input,Java,Html,Jsp,File Upload,Input,您好,我正在构建一个web应用程序(在线商店),管理员可以在其中上传新产品。 输入类型之一是文件(产品图像) 我希望产品的图像存储在一个文件夹中,每个产品都会在数据库表中关联一个图像 我的问题是,输入类型=文件是如何工作的?我仍然不明白,当我提交表单时,servlet将如何将图像粘贴到网页文件夹中,以及如何获取值(图像名称)以存储在数据库表中 对于其他输入,我使用“值”获取信息 谢谢 将文件上载到web服务器时,通常会包含以下信息(或类似信息): filename包含文件名或完整路径,具体取决于

您好,我正在构建一个web应用程序(在线商店),管理员可以在其中上传新产品。 输入类型之一是文件(产品图像) 我希望产品的图像存储在一个文件夹中,每个产品都会在数据库表中关联一个图像

我的问题是,输入类型=文件是如何工作的?我仍然不明白,当我提交表单时,servlet将如何将图像粘贴到网页文件夹中,以及如何获取值(图像名称)以存储在数据库表中

对于其他输入,我使用“值”获取信息


谢谢

将文件上载到web服务器时,通常会包含以下信息(或类似信息):

filename
包含文件名或完整路径,具体取决于浏览器


如果您使用类似的程序,您可以准确地看到上载文件时发生的情况。

将文件上载到web服务器时,通常会包含以下信息(或类似信息):

filename
包含文件名或完整路径,具体取决于浏览器


如果使用这样的程序,您可以准确地看到上载文件时发生的情况。

在java中,很难处理文件上载。但是有很多图书馆可以做到这一点。最受欢迎的一个示例是关于如何在java中实现这一点的示例:

DiskFileItemFactory factory = new DiskFileItemFactory();

// Set factory constraints
factory.setSizeThreshold(yourMaxMemorySize);
factory.setRepository(yourTempDirectory);

// Create a new file upload handler
ServletFileUpload upload = new ServletFileUpload(factory);

// Set overall request size constraint
upload.setSizeMax(yourMaxRequestSize);

// Parse the request
List /* FileItem */ items = upload.parseRequest(request);

还有更多的选项可供选择。

在java中,处理文件上传很难。但是有很多图书馆可以做到这一点。最受欢迎的一个示例是关于如何在java中实现这一点的示例:

DiskFileItemFactory factory = new DiskFileItemFactory();

// Set factory constraints
factory.setSizeThreshold(yourMaxMemorySize);
factory.setRepository(yourTempDirectory);

// Create a new file upload handler
ServletFileUpload upload = new ServletFileUpload(factory);

// Set overall request size constraint
upload.setSizeMax(yourMaxRequestSize);

// Parse the request
List /* FileItem */ items = upload.parseRequest(request);
有很多选择,你应该玩转

输入类型=文件是如何工作的

这将用于带有
多部分/表单数据的
编码中。一旦选择了文件并提交了表单,那么文件内容就成为HTTP请求主体的一部分。在servlet中,它通过
request.getInputStream()
作为“原始”数据提供。在只支持Servlet2.5或更早版本的servletcontainers中,没有API提供的工具来解析数据。这是事实上的标准。自servlet 3.0以来,您可以使用提供的API
request.getParts()
来实现这一点,该API使用Commons FileUpload的许可副本

另见:
我仍然不明白,当我提交表单时,servlet将如何将图像粘贴到网页文件夹中,以及如何获取值(图像名称)以存储在数据库表中

您不仅应该对文件名感兴趣。您还应该对文件内容感兴趣。无论您选择何种方式从请求正文中解析上传的文件,最终的文件内容都应该是
InputStream
byte[]
的风格。您可以使用
FileOutputStream
将其写入本地磁盘文件系统,并以通常的JDBC方式将唯一文件名存储在数据库中

另见:
  • -消除一个重大误解
输入类型=文件是如何工作的

这将用于带有
多部分/表单数据的
编码中。一旦选择了文件并提交了表单,那么文件内容就成为HTTP请求主体的一部分。在servlet中,它通过
request.getInputStream()
作为“原始”数据提供。在只支持Servlet2.5或更早版本的servletcontainers中,没有API提供的工具来解析数据。这是事实上的标准。自servlet 3.0以来,您可以使用提供的API
request.getParts()
来实现这一点,该API使用Commons FileUpload的许可副本

另见:
我仍然不明白,当我提交表单时,servlet将如何将图像粘贴到网页文件夹中,以及如何获取值(图像名称)以存储在数据库表中

您不仅应该对文件名感兴趣。您还应该对文件内容感兴趣。无论您选择何种方式从请求正文中解析上传的文件,最终的文件内容都应该是
InputStream
byte[]
的风格。您可以使用
FileOutputStream
将其写入本地磁盘文件系统,并以通常的JDBC方式将唯一文件名存储在数据库中

另见:
  • -消除一个重大误解

如果您使用的是PHP:Retaged as per OP's comments below(Java)@查看您是否使用的是PHP:Retaged as per OP's comments below(Java)@查看一旦您有了文件,顺便说一句,您可以将其写入(文件)并保存到任何地方。这并不难。它只是在3.0版之前才内置在标准ServletAPI中。在Java中使用第三方库就像在classpath.Yep中删除JAR文件一样简单。如果你使用maven,那就更容易了。我是说没有第三方很难做到这一点。顺便说一下,一旦你有了文件,你就可以写(文件)并将其保存到任何地方。这并不难。它只是在3.0版之前才内置在标准ServletAPI中。在Java中使用第三方库就像在classpath.Yep中删除JAR文件一样简单。如果你使用maven,那就更容易了。我是说没有第三方很难做到这一点。