阅读背景:

基于Struts2大文件分片断点续传

来源:互联网 

话不多说,直接上代码。


1.java后台

package com.bjhit.eranges.actions.test;
 
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.text.SimpleDateFormat;
import java.util.Date;

import com.opensymphony.xwork2.ActionSupport;
 
public class UploadifyTestAction extends ActionSupport {
    private static final long serialVersionUID = 837481714629791752L;
    private File file;
    private String fileName;
    private String fileSize;
    private String uploadSize;
    private String responseInfo;
 
    public String getUploadedSize() throws IOException{
    	uploadSize = "0";
    	File newFile = new File("D:\"+fileName);
    	File fileUploadDetal = new File("D:\"+fileName+".rhxy");//临时文件,记录文件上传的状态
        if (newFile.exists()) {
			if (!fileUploadDetal.exists()) {
				//此文件夹下有重名文件,不允许上传
				return "falier";
			}else{
				FileReader fileReader = new FileReader(fileUploadDetal);
				BufferedReader bufferedReader = new BufferedReader(fileReader);
				bufferedReader.readLine();
				String name = bufferedReader.readLine();
				
				bufferedReader.readLine();
				String size = bufferedReader.readLine();
				
				bufferedReader.readLine();
				String uploadedSize = bufferedReader.readLine();
				
				bufferedReader.readLine();
				String createTime = bufferedReader.readLine();
				
				
				bufferedReader.close();
				fileReader.close();
				
				System.out.println("文件:"+name+" "+size+"字节, 已上传"+uploadedSize+"字节,更新时间"+createTime);
				
				if (name.equals(fileName)) {
					uploadSize = uploadedSize;
				}else{
					System.out.println("文件:"+fileName+" 上传信息有错误。");
				}
			}
		}
    	return "uploadsize";
    }
    
    public String doUpload() throws Exception {
    	System.out.println("=======================================");
        System.out.println(fileName);
        System.out.println(file.length()+",已传大小:"+uploadSize);
        File newFile = new File("D:\"+fileName);
        
        File fileUploadDetal = new File("D:\"+fileName+".rhxy");//临时文件,记录文件上传的状态
        if (!newFile.exists()) {
			newFile.createNewFile();
		}else{
			if (!fileUploadDetal.exists()) {
				//此文件夹下有重名文件,不允许上传
				return "falier";
			}
		}
        copyFile(file,newFile);
        
        if (uploadSize.equals(fileSize)) {
			fileUploadDetal.delete();
		}else{
			if (!fileUploadDetal.exists()) {
				fileUploadDetal.createNewFile();
			}
			FileWriter fileWriter = new FileWriter(fileUploadDetal);
			BufferedWriter bufferedWriter = new BufferedWriter(fileWriter);
			bufferedWriter.write("文件名:");
			bufferedWriter.newLine();
			bufferedWriter.write(fileName);
			bufferedWriter.newLine();
			bufferedWriter.write("文件大小:");
			bufferedWriter.newLine();
			bufferedWriter.write(fileSize);
			bufferedWriter.newLine();
			bufferedWriter.write("已传大小:");
			bufferedWriter.newLine();
			bufferedWriter.write(uploadSize);
			bufferedWriter.newLine();
			bufferedWriter.write("更新时间:");
			bufferedWriter.newLine();
			bufferedWriter.write(new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").format(new Date()));
			bufferedWriter.close();
			fileWriter.close();
		}      
        
        responseInfo = "上传成功!";
        return "doUpload";
    }
    
    private void copyFile(File oldFile,File newFile) throws IOException{
    	InputStream in = new FileInputStream(oldFile);
    	OutputStream out = new FileOutputStream(newFile,true);
    	byte[] buffer = new byte[1024];  
        int len = -1;  
        while ((len = in.read(buffer)) != -1) {  
            out.write(buffer, 0, len);  
        }  
        in.close();
        out.close();
    }
 
    public File getFile() {
		return file;
	}

	public void setFile(File file) {
		this.file = file;
	}

	public String getResponseInfo() {
        return responseInfo;
    }
 
    public void setResponseInfo(String responseInfo) {
        this.responseInfo = responseInfo;
    }
    
    public String getFileName() {
		return fileName;
	}

	public void setFileName(String fileName) {
		this.fileName = fileName;
	}

	public String getFileSize() {
		return fileSize;
	}

	public void setFileSize(String fileSize) {
		this.fileSize = fileSize;
	}

	public String getUploadSize() {
		return uploadSize;
	}

	public void setUploadSize(String uploadSize) {
		this.uploadSize = uploadSize;
	}
	
	
}package com.bjhi



你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: