Java Web项目实现上传文件以及下载文件功能的关于路径的问题

Java Web项目实现上传文件以及下载文件功能的关于路径的问题,第1张

你这个项目用的maven来管理包和依赖的,但你不用太在意这个maven的目录结构啊.你做上传的时候应该把文件放到个单独的位置而不是放到src目录里面,因为这个src目录部署后是要拷到WEB-INF下面的classes目录的,如果确实需要这样做,那你就在写上传代码的时候把文件拷到target目录中

如果通过servelet来读取上传文件路径,则代码如下,我已经在项目中用过了:

DiskFileItemFactory difif = new DiskFileItemFactory()

difif.setSizeThreshold(32*1024)difif.setRepository(new File(tmpDir))        //

用以上工厂实例化上传组件ServletFileUpload sfu = new ServletFileUpload(difif)

sfu.setSizeMax(MAX_SIZE)

List fileList = sfu.parseRequest(request)

if ( fileList == null || fileList.size() == 0) {                throw new Exception("

导入文件不存在,请检

查")} else {                File upLoadFile = null                Iterator fileIterator = fileList.iterator()

//得到所有上传的文

件                while (fileIterator.hasNext()) {                    FileItem fileItem = (FileItem)fileIterator.next()                    //

取得上传文件

名                    if (fileItem.getContentType() == null) {                    } else {

                        //

此为路

径                        String path = fileItem.getName()                        String t_ext = path.substring(path.lastIndexOf(".") + 1)                                                //

根据系统时间生成上传后保存的文件

名                        String prefix = String.valueOf(System.currentTimeMillis())                        //

保存最终的文件完整路径,保存在工程根目录下的Upload目录

下                        String u_name = tmpDir + File.separator + prefix + "." + t_ext                                                //

开始保存文

件                        upLoadFile = new File(u_name)                        fileItem.write(upLoadFile)                    }                }            }

1.使用请求的方式,src="请求后台路径",后台以输出流的方式返回文件即可

后台代码:

[java] view plain copy

@RequestMapping("/getimgs")

public void getimg(String saveAddress ,HttpServletRequest request, HttpServletResponse response) throws IOException{

try{

FileInputStream hFile = new FileInputStream(saveAddress) // 以byte流的方式打开文件 d:\1.gif

int i=hFile.available() //得到文件大小

byte data[]=new byte[i]

hFile.read(data) //读数据

hFile.close()

response.setContentType("image/*") //设置返回的文件类型

OutputStream toClient=response.getOutputStream() //得到向客户端输出二进制数据的对象

toClient.write(data) //输出数据

toClient.close()

}

catch(IOException e) //错误处理

{

PrintWriter toClient = response.getWriter() //得到向客户端输出文本的对象

response.setContentType("text/htmlcharset=gb2312")

toClient.write("无法打开图片!")

toClient.close()

}

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12094081.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存