JAvaブレークポイント継続機能の実現と構想SpringMVCバージョン


ブレークポイント
機能要件:転送時にネットワークが中断することを保証し、同じファイルを選択してアップロードを継続することができます.実現の構想:ファイルを転送してフォルダを生成して、Fileを通じて臨時のファイルtempを生成して、RandomAccessFileを通じて転送のバイトから臨時のファイルを書き込むことを保証します.
機能キーRandomAccessFile
r:読み取りモードw:rwのみ書く:読み書き、このモードを使用すると、このファイルが存在しない場合、自動的に作成されます.seek(0)は、あなたのファイルの先頭に位置し、次に書くか読むかは、あなたの所定の位置から始まります.
eg:次のコードは私が作った機能で、クライアントアップロードと管理者アップロードに分けてそれぞれ異なる操作に対応し、他のニーズに変更することができます.
ネット上のSpringMVCバージョンの最も完全な1編.の
Controller
	/**
	 *     zip    
	 * @param userName    
	 * @param processType    or   
	 * @param request
	 * @param response 
	 * @return
	 * @throws IOException 
	 * @author ygc
	 */
	@RequestMapping(value="/tiltPictureUpload")
	@ResponseBody
	public String TiltPictureUpload(@RequestParam("userName") String userName,@RequestParam("processType") String processType,HttpServletRequest request,
			HttpServletResponse response) throws IOException {
		response.setContentType("textml;charset=UTF-8");  
		response.setHeader("Content-type", "application/json;charset=UTF-8"); 
		JsonResult jr = new JsonResult();	
		System.out.println("  ...");
		boolean data = tiltPictureService.tiltPictureUpload(request,userName,processType);
	    Map result = new HashMap();
	    result.put("code", 0);
	    result.put("msg", "");
	    result.put("data", data);
//		jr.setData("data", msg);			
		String r = JSON.toJSONString(result); 
		response.getWriter().print(r);
		return null;
	}

Service
	/**
	 *     zip    
	 * @author ygc
	 */
	@Override
	public boolean tiltPictureUpload(HttpServletRequest request, String userName, String processType) throws IOException {
		//         
		FileUploadFactory factory=new FileUploadFactory();
		//      
		if(processType.equals("0")) {
			//          
			UploadService client= factory.getFileByClass("com.earthview.service.impl.ClientUpload");
		 boolean temp=client.breakPointUpload(request, userName, processType);
		 return temp;
		 //     
		}else {
			//         
			UploadService manager=factory.getFileByClass("com.earthview.service.impl.ManagerUpload");
		 boolean temp=manager.breakPointUpload(request, userName, processType);
		 return temp;
		}
	}

ClientUpload
package com.earthview.service.impl;

import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.io.RandomAccessFile;
import java.util.Date;
import java.util.List;
import java.util.UUID;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.disk.DiskFileItem;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import org.springframework.web.multipart.commons.CommonsMultipartFile;

import com.earthview.dao.TiltPictureDao;
import com.earthview.entity.TiltPicture;
import com.earthview.entity.TiltPictureAll;
import com.earthview.service.DataService;
import com.earthview.service.TiltPictureService;
import com.earthview.service.UploadService;
import com.earthview.util.Commons;
import com.earthview.util.DateUtil;
import com.earthview.util.SpringContextUtil;
import com.earthview.util.TiltUtil;

public class ClientUpload implements UploadService{
	/**
	 *         
	 */
	@Override
	public boolean breakPointUpload(HttpServletRequest request, String userName, String processType)
			throws IOException {
		System.out.println("        ..");
		//     
		MultipartHttpServletRequest mh=(MultipartHttpServletRequest) request;
		//      
	//	CommonsMultipartFile cmf=(CommonsMultipartFile) mh.getFile("uploadForm");
		CommonsMultipartFile cmf=(CommonsMultipartFile) mh.getFile("file");
		DiskFileItem   fi = (DiskFileItem ) cmf.getFileItem();
		File fs = fi.getStoreLocation();
		//       
		String oriName=cmf.getOriginalFilename(); 
		String uuid=UUID.randomUUID().toString();
		String directory=Commons.TILTPICTURE_PATH;
		String savePath=Commons.TILTPICTURE_PATH+File.separator+userName+"-"+uuid;
		//status=0    
		String uploadStatus;
		//status=0   
		String downloadStatus;
		String targetFilePath=Commons.TILTPICTURE_TARGET_PATH;
		FileItem fileItem=cmf.getFileItem();	
		int	allSize=(int) fileItem.getSize();
		if(oriName.matches(".*.zip") || oriName.matches(".*.rar")){
		//             
		TiltPictureDao tiltPictureDao = (TiltPictureDao) SpringContextUtil.getBean("tiltPictureDao");
		TiltPicture tiltList=tiltPictureDao.findTiltPictureInfoByName(oriName);			
		if(tiltList.getFileName()==null ){
			if(!"1".equals(tiltList.getUploadStatus()) && !"0".equals(tiltList.getDownloadStatus())) {
				File directoryPath=new File(directory);	
				if  (!directoryPath.exists()  && !directoryPath.isDirectory())  {
					directoryPath.mkdir(); 					
				}    		
			File filePath=new File(savePath);	
			if  (!filePath.exists()  && !filePath.isDirectory())  {
				filePath.mkdir(); 					
			}    				
			//            
			File file=new File(savePath,oriName+".temp");	
			if(!file.exists()) {
				file.createNewFile();
			}	
			DataInputStream dis=new DataInputStream(fileItem.getInputStream()); 
		//	DataOutputStream dos=new DataOutputStream(fileItem.getOutputStream());
			RandomAccessFile w=new RandomAccessFile(file, "rw");			
			RandomAccessFile r=new RandomAccessFile(fs, "rw");	
//			//      
			long size=0;
			if(file.exists()&&file.isFile()){
				size=file.length();
			}
			//           1     
		//	tiltPictureDao.saveUploadFileInfo(oriName,savePath,uploadStatus="1",allSize,downloadStatus="0",targetFilePath);
			w.seek(size);
			r.seek(size);
			int length;
			byte[] buf=new byte[512];
			while((length=r.read(buf, 0, buf.length))!=-1){
				w.write(buf,0,length);	
			}
			
			int barOffset=(int)(w.length()/1024);
			int barSize=(int)(allSize/1024);	
//			//    
			if (barOffset>=barSize) {
				w.close();
				r.close();
				dis.close();
			//	dos.close();
				file.renameTo(new File(savePath,oriName));
				System.out.println(oriName);
//				//     2      
//				tiltPictureDao.updateUploadFileStatus(uploadStatus="2",oriName);
				  
				String uploadTime=DateUtil.dateToString1();
				tiltPictureDao.saveUploadFileInfo(oriName,savePath,uploadStatus="1",allSize,downloadStatus="0","",userName,uploadTime);
			}
		try {	
		} catch (Exception e){
			e.printStackTrace();  
		}
		}
		return true;
			
		//--	
		}
		else{
			String deletePath;
			if(tiltList.getFilePath()!=null && !tiltList.getFilePath().equals("")) {
				deletePath=tiltList.getFilePath();
			}else {
				deletePath=tiltList.getTargetFilePath();
			}
			
			//               
	//		tiltPictureDao.deleteUploadFileStatus(uploadStatus="1",oriName);
			tiltPictureDao.deleteUploadFileStatus(oriName);
			String deleteFilePath=deletePath+"\\"+oriName;
			//    
			TiltUtil.delFile(deleteFilePath);
			//    
			TiltUtil.delFile(deletePath);
			File directoryPath=new File(directory);	
			if  (!directoryPath.exists()  && !directoryPath.isDirectory())  {
				directoryPath.mkdir(); 					
			}    	
			File filePath=new File(savePath);	
			if  (!filePath.exists()  && !filePath.isDirectory())  {
				filePath.mkdir(); 					
			}    				
			File file=new File(savePath,oriName+".temp");				
			if(file.exists()) {
				file.createNewFile();
			}
			DataInputStream dis=new DataInputStream(fileItem.getInputStream()); 
	
	//		DataOutputStream dos=new DataOutputStream(fileItem.getOutputStream());
			RandomAccessFile w=new RandomAccessFile(file, "rw");			
			RandomAccessFile r=new RandomAccessFile(fs, "rw");	
//			//      
			long size=0;
			if(file.exists()&&file.isFile()){
				size=file.length();
			}
			//           1     
//			tiltPictureDao.saveUploadFileInfo(oriName,savePath,uploadStatus="1",allSize,downloadStatus="0",targetFilePath);
			w.seek(size);
			r.seek(size);
			int length;
			byte[] buf=new byte[512];
			while((length=r.read(buf, 0, buf.length))!=-1){
				w.write(buf,0,length);
			
			}
    			
			int barSize=(int)(w.length()/1024);
			int barOffset=(int)(allSize/1024);		
//			//    
			if (barOffset>=barSize) {
				w.close();
				r.close();
				dis.close();
//				dos.close();
				file.renameTo(new File(savePath,oriName));
				System.out.println(oriName);
				//   1      
				//tiltPictureDao.updateUploadFileStatus(uploadStatus="2",oriName);
				String uploadTime=DateUtil.dateToString1();
				tiltPictureDao.saveUploadFileInfo(oriName,savePath,uploadStatus="1",allSize,downloadStatus="0","",userName,uploadTime);
			}
		try {	
		} catch (Exception e){
			e.printStackTrace();  
		}
		return true;
		}
		}else {
			return false;
		}
	}


}

ManagerUpload
package com.earthview.service.impl;

import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.File;
import java.io.IOException;
import java.io.RandomAccessFile;
import java.util.List;
import java.util.UUID;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.disk.DiskFileItem;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import org.springframework.web.multipart.commons.CommonsMultipartFile;

import com.earthview.dao.TiltPictureDao;
import com.earthview.entity.TiltPicture;
import com.earthview.entity.TiltPictureAll;
import com.earthview.service.TiltPictureService;
import com.earthview.service.UploadService;
import com.earthview.util.Commons;
import com.earthview.util.DateUtil;
import com.earthview.util.SpringContextUtil;
import com.earthview.util.TiltUtil;

public class ManagerUpload implements UploadService{

	/**
	 *           
	 */
	public boolean breakPointUpload(HttpServletRequest request, String userName, String processType)
			throws IOException {
		System.out.println("        ..");
		//     
		MultipartHttpServletRequest mh=(MultipartHttpServletRequest) request;
		//      
		CommonsMultipartFile cmf=(CommonsMultipartFile) mh.getFile("file");
		DiskFileItem   fi = (DiskFileItem ) cmf.getFileItem();
		File fs = fi.getStoreLocation();
		//       
		String oriName=cmf.getOriginalFilename(); 
		String uuid=UUID.randomUUID().toString();
		String directory=Commons.MANAGER_TILTPICTURE_TARGET_PATH;
		String savePath=Commons.MANAGER_TILTPICTURE_TARGET_PATH+File.separator+userName+"-"+uuid;
		//status=0    
		String uploadStatus;
		//status=0   
		String downloadStatus;
		String targetFilePath=Commons.TILTPICTURE_TARGET_PATH;
		FileItem fileItem=cmf.getFileItem();	
		int	allSize=(int) fileItem.getSize();
		if(oriName.matches(".*.zip") || oriName.matches(".*.rar")){
		//             
			TiltPictureDao tiltPictureDao = (TiltPictureDao) SpringContextUtil.getBean("tiltPictureDao");
		TiltPicture tiltList=tiltPictureDao.findTiltPictureInfoByName(oriName);			
		if(tiltList.getFileName()==null ){
			if(!"2".equals(tiltList.getUploadStatus()) && !"0".equals(tiltList.getDownloadStatus())) {
				File directoryPath=new File(directory);	
				if  (!directoryPath.exists()  && !directoryPath.isDirectory())  {
					directoryPath.mkdir(); 					
				}    				
			//          
			File filePath=new File(savePath);	
			if  (!filePath.exists()  && !filePath.isDirectory())  {
				filePath.mkdir(); 					
			}    				
			//           
			File file=new File(savePath,oriName+".temp");		
			if(!file.exists()) {
				file.createNewFile();
			}
			
			DataInputStream dis=new DataInputStream(fileItem.getInputStream()); 	
	//		DataOutputStream dos=new DataOutputStream(fileItem.getOutputStream());
			RandomAccessFile w=new RandomAccessFile(file, "rw");	
			RandomAccessFile r=new RandomAccessFile(fs, "rw");		
//			File file1=new File(oriName);
//			RandomAccessFile raw=new RandomAccessFile(file1, "rw");		
    	
//		
			long size=0;
			if(file.exists()&&file.isFile()){
				size=file.length();
			}
			
		
			//           1      1703 10427
		//	tiltPictureDao.saveUploadFileInfo(oriName,savePath,uploadStatus="1",allSize,downloadStatus="0",targetFilePath);
			int length;
			w.seek(size);
			r.seek(size);
	//		raw.seek(size);
	        //      
            byte[] buf = new byte[2048];
            
    		while((length=r.read(buf, 0, buf.length))!=-1){
    			
				w.write(buf,0,length);
			}
			int barOffset=(int)(w.length()/1024);
			int barSize=(int)(allSize/1024);		
			
//			//    
			if (barOffset>=barSize) {
				w.close();
				r.close();
				dis.close();
		//		dos.close();
				
				file.renameTo(new File(savePath,oriName));
				System.out.println(oriName);
				//      2      
				String uploadTime=DateUtil.dateToString1();
				tiltPictureDao.saveUploadFileInfo(oriName,"",uploadStatus="2",allSize,downloadStatus="0",savePath,userName,uploadTime);
			}
		try {	
		} catch (Exception e){
			e.printStackTrace();  
		}
		}
		return true;
			
			//--
		}else{
			
			String deletePath;
			if(tiltList.getFilePath()!=null && !tiltList.getFilePath().equals("")) {
				deletePath=tiltList.getFilePath();
			}else {
				deletePath=tiltList.getTargetFilePath();
			}
			//               
			tiltPictureDao.deleteUploadFileStatus(oriName);
			String deleteFilePath=deletePath+"\\"+oriName;
			File file=new File(savePath,oriName+".temp");			
			//    
			TiltUtil.delFile(deleteFilePath);
			//    
			TiltUtil.delFile(deletePath);
			File directoryPath=new File(directory);	
			if  (!directoryPath.exists()  && !directoryPath.isDirectory())  {
				directoryPath.mkdir(); 					
			}   
			File filePath=new File(savePath);	
			if  (!filePath.exists()  && !filePath.isDirectory())  {
				filePath.mkdir(); 					
			}    			
			if(file.exists()) {
				file.createNewFile();
			}
			DataInputStream dis=new DataInputStream(fileItem.getInputStream()); 
//			DataOutputStream dos=new DataOutputStream(fileItem.getOutputStream());
			RandomAccessFile w=new RandomAccessFile(file, "rw");		
			RandomAccessFile r=new RandomAccessFile(fs, "rw");		
//			//      
			long size=0;
			if(file.exists()&&file.isFile()){
				size=file.length();
			}
			//           1      
//			tiltPictureDao.saveUploadFileInfo(oriName,savePath,uploadStatus="1",allSize,downloadStatus="0",targetFilePath);
			int length;
			
			w.seek(size);
			r.seek(size);
	        //      
            byte[] buf = new byte[2048];
			while((length=r.read(buf, 0, buf.length))!=-1){
				w.write(buf,0,length);
			}
			int barOffset=(int)(w.length()/1024);
			int barSize=(int)(allSize/1024);		
//			//    
			if (barOffset>=barSize) {
				r.close();
				w.close();
				dis.close();
	//			dos.close();
				file.renameTo(new File(savePath,oriName));
				System.out.println(oriName);
//				//     2      
//				tiltPictureDao.updateUploadFileStatus(uploadStatus="2",oriName);
				   String uploadTime=DateUtil.dateToString1();
				tiltPictureDao.saveUploadFileInfo(oriName,"",uploadStatus="2",allSize,downloadStatus="0",savePath,userName,uploadTime);
			}
		try {	
		} catch (Exception e){
			e.printStackTrace();  
		}
		return true;
		}
		}else {
			return false;
		}
	}



}

Dao SpringJDBC
package com.earthview.dao;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.springframework.dao.EmptyResultDataAccessException;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.stereotype.Component;

import com.earthview.entity.Event;
import com.earthview.entity.TiltPicture;
import com.earthview.entity.TiltPictureAll;
import com.earthview.util.BaseDao;

@Component
public class TiltPictureDao extends BaseDao {


	//           1     
	public int saveUploadFileInfo(String fileName, String filePath, String uploadStatus, long fileSize, String downloadStatus, String targetFilePath, String userName, String uploadTime) {
		Map paramMap = new HashMap();
		paramMap.put("fileName", fileName);	
		paramMap.put("filePath", filePath);	
		paramMap.put("uploadStatus", uploadStatus);	
		paramMap.put("fileSize", fileSize);	
		paramMap.put("downloadStatus", downloadStatus);	
		paramMap.put("targetFilePath", targetFilePath);	
		paramMap.put("userName", userName);	
		paramMap.put("uploadTime", uploadTime);
		String sql="insert into exhibit_ev_tilt_upload (fileName,filePath,uploadStatus,fileSize,downloadStatus,targetFilePath,userName,uploadTime) values (:fileName,:filePath,:uploadStatus,:fileSize,:downloadStatus,:targetFilePath,:userName,:uploadTime)";
		return this.getNamedParameterJdbcTemplate().update(sql, paramMap);
	}

	public int updateUploadFileStatus(String uploadStatus, String fileName) {
		Map paramMap = new HashMap();
		paramMap.put("uploadStatus", uploadStatus);	
		paramMap.put("fileName", fileName);	
		String sql="update exhibit_ev_tilt_upload set uploadStatus=:uploadStatus where fileName=:fileName ";
	
		return this.getNamedParameterJdbcTemplate().update(sql, paramMap);
	}

	public TiltPicture findTiltPictureInfoByName(String fileName) {
		Map paramMap = new HashMap();
		TiltPicture data=new TiltPicture();
		paramMap.put("fileName", fileName);
		String sql="select * from exhibit_ev_tilt_upload where fileName=:fileName";
		try {
			return getNamedParameterJdbcTemplate().queryForObject(sql, paramMap, rowMapper1);
		} catch (EmptyResultDataAccessException e) {
			// TODO: handle exception
			return data;
		}
		
		
	}
	private RowMapper rowMapper1 = new RowMapper() {
		@Override
		public TiltPicture mapRow(ResultSet rs, int arg1) throws SQLException {
			TiltPicture data = new TiltPicture();
			if(rs.getObject("fileName")!=null) {
				data.setFileName(rs.getString("fileName"));
			}
			if(rs.getObject("filePath")!=null) {
				data.setFilePath(rs.getString("filePath"));
			}
			if(rs.getObject("uploadStatus")!=null) {
				data.setUploadStatus(rs.getString("uploadStatus"));
			}
			if(rs.getObject("fileSize")!=null){
				data.setFileSize(rs.getInt("fileSize"));
			}
			if(rs.getObject("downloadStatus")!=null){
				data.setDownloadStatus(rs.getString("downloadStatus"));
			}
			if(rs.getObject("uploadTime")!=null){
				data.setUploadTime(rs.getString("uploadTime"));
			}
			if(rs.getObject("userName")!=null){
				data.setUserName(rs.getString("userName"));
			}
			if(rs.getObject("targetFilePath")!=null){
				data.setTargetFilePath(rs.getString("targetFilePath"));
			}
			if(rs.getObject("downloadDate")!=null){
				data.setDownloadDate(rs.getString("downloadDate"));
			}
			return data;
		}
	};
	public int deleteUploadFileStatus(String fileName) {
		Map paramMap = new HashMap();
//		paramMap.put("uploadStatus",uploadStatus);
		paramMap.put("fileName",fileName);
//		String sql="delete from exhibit_ev_tilt_upload where fileName=:fileName and uploadStatus=:uploadStatus";	
		String sql="delete from exhibit_ev_tilt_upload where fileName=:fileName ";		
		return this.getNamedParameterJdbcTemplate().update(sql, paramMap);
	}

	public List findTiltPictureUploadStatusByName(String userName) {
		Map paramMap = new HashMap();
		paramMap.put("userName", userName);						
		String sql="select fileName,uploadStatus,downloadStatus,fileSize from exhibit_ev_tilt_upload where userName=:userName";
		return this.getNamedParameterJdbcTemplate().query(sql, paramMap, rowMapper2);
	
	}
	private RowMapper rowMapper2 = new RowMapper() {
		@Override
		public TiltPicture mapRow(ResultSet rs, int arg1) throws SQLException {
			TiltPicture data = new TiltPicture();
			if(rs.getObject("fileName")!=null) {
				data.setFileName(rs.getString("fileName"));
			}
			if(rs.getObject("uploadStatus")!=null) {
				data.setUploadStatus(rs.getString("uploadStatus"));
			}
			if(rs.getObject("downloadStatus")!=null) {
				data.setDownloadStatus(rs.getString("downloadStatus"));
			}
			if(rs.getObject("fileSize")!=null) {
				data.setFileSize(rs.getInt("fileSize"));
			}
			return data;
		}
	};
	public TiltPicture findUploadStatusByName(String fileName) {
		Map paramMap = new HashMap();
		paramMap.put("fileName", fileName);						
		String sql="select fileName,uploadStatus,filePath,targetFilePath from exhibit_ev_tilt_upload where fileName=:fileName";
		return this.getNamedParameterJdbcTemplate().queryForObject(sql, paramMap, rowMapper3);
	}
	private RowMapper rowMapper3 = new RowMapper() {
		@Override
		public TiltPicture mapRow(ResultSet rs, int arg1) throws SQLException {
			TiltPicture data = new TiltPicture();
			if(rs.getObject("fileName")!=null) {
				data.setFileName(rs.getString("fileName"));
			}
			if(rs.getObject("uploadStatus")!=null) {
				data.setUploadStatus(rs.getString("uploadStatus"));
			}
			if(rs.getObject("filePath")!=null) {
				data.setFilePath(rs.getString("filePath"));
			}
			if(rs.getObject("targetFilePath")!=null){
				data.setTargetFilePath(rs.getString("targetFilePath"));
			}
			return data;
		}
	};
	public int findResultCount() {
		Map paramMap = new HashMap();
		String sql="select count(1) from exhibit_ev_tilt_upload ";
		
		return this.getNamedParameterJdbcTemplate().queryForInt(sql, paramMap);
	}

	public List findResultCountListData(int startIndex, int pageSize) {
		Map paramMap = new HashMap();
		String sql = " SELECT "
				 +"     t1.id,"
				 +" 	t1.fileName, "
				 +" 	t1.filePath, "
				 +"		t1.targetFilePath,"
				 +" CASE "
				 +" 	WHEN t1.uploadStatus LIKE '%0%' THEN "
				 +" 	'    '  "
				 +" 	WHEN t1.uploadStatus LIKE '%1%' THEN "
				 +" 	'    '  "
				 +" 	WHEN t1.uploadStatus LIKE '%3%' THEN "
				 +" 	'    '  "
				 +" 	WHEN t1.uploadStatus LIKE '%4%' THEN "
				 +" 	'    '  "
				 +" 	WHEN t1.uploadStatus LIKE '%2%' THEN "
				 +" 	'    ' ELSE NULL  "
				 +" 	END AS uploadStatus, "
//				 +" 	t1.fileSize, "
				 +" CASE "
				 +" 		 "
				 +" 		WHEN t1.downloadStatus LIKE '%0%' THEN "
				 +" 		'   '  "
				 +" 		WHEN t1.downloadStatus LIKE '%1%' THEN "
				 +" 		'   ' ELSE NULL  "
				 +" 	END AS downloadStatus  "
				 +" FROM "
				 +" exhibit_ev_tilt_upload t1 LIMIT "+startIndex+","+pageSize;

		
	//	String sql="select t1.fileName,filePath,t1.uploadStatus,t1.fileSize,t1.downloadStatus from exhibit_ev_tilt_upload t1  LIMIT "+startIndex+","+pageSize ;
		
		return this.getNamedParameterJdbcTemplate().query(sql, paramMap, rowMapper4);
	}
	private RowMapper rowMapper4 = new RowMapper() {
		@Override
		public TiltPictureAll mapRow(ResultSet rs, int arg1) throws SQLException {
			TiltPictureAll data = new TiltPictureAll();
			if(rs.getObject("id")!=null) {
				data.setId(rs.getInt("id"));
			}
			if(rs.getObject("fileName")!=null) {
				data.setFileName(rs.getString("fileName"));
			}
			if(rs.getObject("filePath")!=null) {
				data.setFilePath(rs.getString("filePath"));
			}
			if(rs.getObject("uploadStatus")!=null) {
				data.setUploadStatus(rs.getString("uploadStatus"));
			}
//			if(rs.getObject("fileSize")!=null){
//				data.setFileSize(rs.getInt("fileSize"));
//			}
			if(rs.getObject("downloadStatus")!=null){
				data.setDownloadStatus(rs.getString("downloadStatus"));
			}
			if(rs.getObject("targetFilePath")!=null){
				data.setTargetFilePath(rs.getString("targetFilePath"));
			}
//			if(rs.getObject("uploadTime")!=null){
//				data.setUploadTime(rs.getString("uploadTime"));
//			}
//			if(rs.getObject("userName")!=null){
//				data.setUserName(rs.getString("userName"));
//			}
			return data;
		}
	};
	public int updateDownloadStatusByName(String fileName, String downloadDate, String uploadStatus) {
		Map paramMap = new HashMap();
		paramMap.put("fileName",fileName);
		paramMap.put("downloadDate",downloadDate);
		paramMap.put("uploadStatus",uploadStatus);
		String sql="update exhibit_ev_tilt_upload set downloadStatus=1,downloadDate=:downloadDate,uploadStatus=:uploadStatus where fileName=:fileName";
		return this.getNamedParameterJdbcTemplate().update(sql, paramMap);
	}

	public int updateChangeDownloadStatusByName(String fileName, String downloadStatus, String downloadDate) {
		Map paramMap = new HashMap();
		paramMap.put("fileName",fileName); 
		paramMap.put("downloadStatus",downloadStatus);
		paramMap.put("downloadDate",downloadDate);
		String sql="update exhibit_ev_tilt_upload set downloadStatus=:downloadStatus,downloadDate=:downloadDate where fileName=:fileName";
		
		return this.getNamedParameterJdbcTemplate().update(sql, paramMap);
	}

	public TiltPicture findCheckUploadStatusByUserName(String userName, String fileName) {
		TiltPicture data=new TiltPicture();
		Map paramMap = new HashMap();
		paramMap.put("userName",userName);
		paramMap.put("fileName",fileName); 
		String sql="select uploadStatus from exhibit_ev_tilt_upload  where userName=:userName and fileName=:fileName";
		try {
			return getNamedParameterJdbcTemplate().queryForObject(sql, paramMap, rowMapper5);
		} catch (EmptyResultDataAccessException e) {
			// TODO: handle exception
			return data;
		}
	}
	private RowMapper rowMapper5 = new RowMapper() {
		@Override
		public TiltPicture mapRow(ResultSet rs, int arg1) throws SQLException {
			TiltPicture data = new TiltPicture();
			if(rs.getObject("uploadStatus")!=null) {
				data.setUploadStatus(rs.getString("uploadStatus"));
			}
			return data;
		}
	};
}

FileUploadFactory
package com.earthview.service.impl;

import com.earthview.service.UploadService;
/**
 *         
 * @author ygc
 */
public class FileUploadFactory {
		//    
		public UploadService getFileByClass(String className){
			UploadService type;
			try {
				type = (UploadService) Class.forName(className).newInstance();
				return type;
			} catch (InstantiationException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			} catch (IllegalAccessException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			} catch (ClassNotFoundException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			return null;
	}

}

util指定したパスファイルまたはフォルダを削除する
	/**
	 *          
	 * eg:c:/ygc.txt
	 * @param filePathAndName
	 */
	public static void delFile(String filePathAndName) {
		try {
			String filePath = filePathAndName;
			filePath = filePath.toString();
			java.io.File myDelFile = new java.io.File(filePath);
			myDelFile.delete();
		} catch (Exception e) {
			System.out.println("        ");
			e.printStackTrace();
		}
	}
}

Beanツールの取得
/**
 *    :SpringContextUtil.java
 * 
 *    :
 * 
 *     : 2015-4-23   10:32:51 
 * 
 **/
package com.earthview.util;

import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;

public class SpringContextUtil implements ApplicationContextAware{
	private static ApplicationContext   applicationContext;
	 
    /**
     *   ApplicationContextAware       ,       
     */
    public void setApplicationContext(ApplicationContext applicationContext){
        SpringContextUtil.applicationContext = applicationContext;
    }
 
    public static ApplicationContext getApplicationContext(){
        return applicationContext;
    }
 
    public static Object getBean(String name) throws BeansException{
        return applicationContext.getBean(name);
    }
    
    
}

//簡略版の例.
package com.kero99.ygc.util;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.RandomAccessFile;

public class Test {

    private static int position = -1;

    public static void main(String[] args) {
        //         
        File sourceFile = new File("D:/", "test.txt");
        File targetFile = new File("E:/", "test.txt");
        //      
        FileInputStream fis = null;
        FileOutputStream fos = null;
        //      
        byte[] buf = new byte[1];

        try {
            fis = new FileInputStream(sourceFile);
            fos = new FileOutputStream(targetFile);
            //     
            while (fis.read(buf) != -1) {
                fos.write(buf);
                //       3        ,     ,    
                if (targetFile.length() == 3) {
                    position = 3;
                    throw new FileAccessException();
                }
            }
        } catch (FileAccessException e) {
            keepGoing(sourceFile,targetFile, position);
        } catch (FileNotFoundException e) {
            System.out.println("       ");
        } catch (IOException e) {
            // TODO: handle exception
        } finally {
            try {
                //        
                if (fis != null)
                    fis.close();

                if (fos != null)
                    fos.close();
            } catch (IOException e) {
                e.printStackTrace();
            }

        }
    }

    private static void keepGoing(File source,File target, int position) {
        try {
            Thread.sleep(10000);
        } catch (InterruptedException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        try {
            RandomAccessFile readFile = new RandomAccessFile(source, "rw");
            RandomAccessFile writeFile = new RandomAccessFile(target, "rw");
            readFile.seek(position);
            writeFile.seek(position);

            //      
            byte[] buf = new byte[1];
            //     
            while (readFile.read(buf) != -1) {
                writeFile.write(buf);
            }
        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

}

class FileAccessException extends Exception {

}

html+js




Insert title here




  



function uploadFile(){
$("#check_upload").attr("disabled","disabled");
var name="   ";
var type="1";
$.ajax({
	type : "POST",
	cache : false,
	dataType : "json",
	data:new FormData($('#file')[0]),
    processData: false,//   data              false
    contentType: false, //   ?Year="+Year+"&quarter="+quarter"	
    url : "/20180926_V1.0_GIS/tilt/tiltPictureUpload.htm?userName="+name+"&&processType="+type+" ",		
	success : function(obj) {
		/* alert(obj.data.msg); */
		var result=obj.data.msg;
		if(result==true){
			$("#check_upload").removeAttr("disabled");
			$("#checkResult").text("    !").css("color","blue");
		}else{
			$("#check_upload").removeAttr("disabled");
			$("#checkResult").text("    !").css("color","red");
		}
		
	}
});	
}	

ZIP: