javaweb项目java后台获取前台js上传文件的路径

发布网友 发布时间:1天前

我来回答

1个回答

热心网友 时间:1天前

在Java Web项目中,若要从前端JavaScript接收并处理上传的文件,可以通过Servlet来实现这一功能。具体来说,可以使用Apache Commons FileUpload库来解析上传文件。以下是使用DiskFileItemFactory和ServletFileUpload来读取上传文件路径的代码示例,我在项目中已经成功应用过该代码。

首先,我们创建一个DiskFileItemFactory实例,并设置其大小阈值和临时文件存储路径。接着,通过该工厂实例化上传组件ServletFileUpload,并设置最大文件大小。

接下来,我们调用ServletFileUpload的parseRequest方法来解析请求中的文件列表。如果解析结果为空或为空列表,则抛出异常,表示没有文件被上传。否则,我们遍历这些文件项,获取每个文件的名称,然后将其保存到指定的目录。

具体代码如下:

DiskFileItemFactory difif = new DiskFileItemFactory();

difif.setSizeThreshold(32 * 1024);

difif.setRepository(new File(tmpDir));

ServletFileUpload sfu = new ServletFileUpload(difif);

sfu.setSizeMax(MAX_SIZE);

List file_list = sfu.parseRequest(request);

if (file_list == null || file_list.size() == 0) {

throw new Exception("没有文件被上传");

} else {

File upLoadFile = null;

Iterator file_iterator = file_list.iterator();

// 获取所有上传的文件

while (file_iterator.hasNext()) {

FileItem file_item = (FileItem) file_iterator.next();

// 获取上传文件名

if (file_item.getContentType() == null) {

} else {

// 文件路径

String path = file_item.getName();

String t_ext = path.substring(path.lastIndexOf(".") + 1);

// 开始保存文件

upLoadFile = new File(u_name);

file_item.write(upLoadFile);

}

}

}

通过这种方式,我们可以成功地从前端接收文件并保存到服务器端。需要注意的是,上述代码中的tmpDir和MAX_SIZE等变量需要根据实际情况进行设置。

总结来说,通过设置DiskFileItemFactory的大小阈值和临时文件存储路径,并使用ServletFileUpload来解析请求中的文件列表,我们可以实现从前端JavaScript上传文件到Java后台的功能。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com