java 另存新檔下載檔案時重新命名檔案
來源:互聯網
上載者:User
public void filedown() throws Exception {String fileName = inputPath.replace(inputPath.substring(0,inputPath.lastIndexOf("/",inputPath.length())),"/data/backup"); //原來檔案的路徑String filepath = inputName.substring(inputName.lastIndexOf("/") + 1, inputName.length()); //另存新檔的檔案名稱// String fileName = inputPath.substring(inputPath.lastIndexOf("/") + 1, inputPath.length());File file=new File(inputPath);ServletActionContext.getResponse().setHeader("Content-Disposition", "attachment; filename=" + new String(filepath.getBytes("gb2312"), "iso-8859-1"));// OutputStream outputStream = ServletActionContext.getResponse().getOutputStream();// byte[] mybyte =new byte[1024];// InputStream input =new FileInputStream(file);// int temp=-1;// while((temp=input.read(mybyte))!=-1){// outputStream.write(mybyte,0,temp);// }// outputStream.flush();//建立檔案輸入輸出資料流 OutputStream output = null; FileInputStream fis = null; try{ //建立File對象 File f = new File(fileName); //建立檔案輸入輸出資料流對象 output = ServletActionContext.getResponse().getOutputStream(); fis = new FileInputStream(f); //設定每次寫入緩衝大小 byte[] b = new byte[(int)f.length()]; //out.print(f.length()); //把輸出資料流寫入用戶端 int i = 0; while((i = fis.read(b)) > 0){ output.write(b, 0, i); System.out.println("列印"+i); } output.flush(); } catch(Exception e){ e.printStackTrace(); } finally{ if(fis != null){ fis.close(); fis = null; } if(output != null){ output.close(); output = null; } }return;}