java文件上传下载

来源:互联网 发布:dota2天梯各分段 知乎 编辑:程序博客网 时间:2024/05/29 11:07

这里先说下spring mvc 遇到的坑,就是如果文件上传时,后端这样写public String file1(HttpServletRequest request),根据request拿到的东西是空的。所以要下面这样写。


在任何xml里面(因为都要加载到的,所以可以随便放进去)加上

<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">  
<property name="defaultEncoding" value="UTF-8"></property>
    <property name="maxUploadSize" value="10485760" />  

cotroller里面

@RequestMapping(value="file",method=RequestMethod.POST)
public String file1(@RequestParam("file")MultipartFile file1,HttpServletRequest request) throws IOException {
InputStream inputStream=file1.getInputStream();
//System.out.println(file1.getOriginalFilename()+" "+file1.getSize());

//第一种是原始的java文件上传的方式,下载的话也跟这个差不多,所以下载就不写了;
String name=request.getSession().getServletContext().getRealPath("/")+"file";
System.out.println(name);

File file0=new File(name);
if(!file0.isDirectory()&&!file0.exists())
file0.mkdir();

name+="\\"+file1.getOriginalFilename();
File file=new File(name);
try {
file.createNewFile();
FileOutputStream outputStream;

outputStream = new FileOutputStream(file);

byte b[]=new byte[1024];
int n;
while((n=inputStream.read(b))!=-1){
outputStream.write(b, 0, n);
}
outputStream.close();
inputStream.close();
} catch (Exception e) {
e.printStackTrace();
}
//下面是xml引入的bean,也是比较方便的方法
/*
if(!file.isEmpty()){  
            try {  
                  
                //这里将上传得到的文件保存至 d:\\temp\\file 目录  
                FileUtils.copyInputStreamToFile(file.getInputStream(), new File("d:/hello",   
                        System.currentTimeMillis()+ file.getOriginalFilename()));  
            } catch (IOException e) {  
                e.printStackTrace();  
            }  
        }
*/
return "upload";
}


文件下载一般会涉及特定文件夹下的搜索文件(用迭代方法)

import java.io.File;
public class test {
 public static void main(String[] args) {
  String path="D:/hello/";
  File file=new File(path);
  researchfile(file);
  
   
 }
 public static void researchfile(File file) {  
     if (file.isDirectory()) {  
         File[] filearry = file.listFiles();  
         for (File f : filearry) {  
             if (f.isDirectory()) {  
                // System.out.println("0"+f.getAbsoluteFile());  
             } else {  
                 System.out.println(f.getAbsoluteFile());  
             }  
             researchfile(f);  
         }
     }
 }  
}

原创粉丝点击