[JavaWeb]jsp圖片ajax非同步上傳,利用ajaxfileupload__大資料

來源:互聯網
上載者:User

外掛程式:ajaxfileupload.js



jsp:

1、引入該js

2、寫一個input。例如<input type="file" id="id_file" name="file">

3、寫上傳的js

<script type="text/javascript">
function ajaxFileUpload() {
var obj_file = document.getElementById("id_file");
    var filesize = 0;
    fileSize = obj_file.files[0].size;
   if(fileSize>512000){
    alert("圖片不能超過500kb!");

$("#id_file").val="";
   }else{
    $.ajaxFileUpload({
url :'<%=basePath%>sjtp/tempimg.do', 
//用於檔案上傳的伺服器端請求地址
secureuri : false, //一般設定為false
fileElementId : 'id_file', //檔案上傳空間的id屬性  <input type="file" id="id_file" name="file" />
type : 'post',
dataType : 'HTML', //傳回值類型 一般設定為json
success : function(data, status) //伺服器成功響應處理函數
{
 //這裡每個人商務邏輯不一樣,就不做執行個體了.

},
error : function(data, status, e)//伺服器響應失敗處理函數
{
alert(e);
}
})
return false;
   }
}
</script>


頁面上傳js完成,現在是後台

說下我的後台部分業務,每天上傳的圖片都是存在當天的檔案夾裡的。比如今天2016年4月23日,那麼圖片存放的檔案夾就是20160423的。




後台代碼:




package com.oceansoft.swl.controller;


import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;


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


import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;


/**
 * 圖片上傳
 * @author LL
 *
 * 2015-7-24下午3:09:27
 */
@Controller
@RequestMapping("sjSptp")
public class SjTpscController {
@RequestMapping("/sptp.do")
public void addCategory(HttpServletRequest request, String path1,
String path2, HttpServletResponse actioncontext) {
//擷取當前年月日
Date d = new Date();  
   SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");  
   String dateNowStr = sdf.format(d);
//System.out.println("添加圖片");
String re=null;
String sub=null;
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
MultipartFile imgFile1 = multipartRequest.getFile("filesptp");// 擷取上次檔案名稱
MultipartFile imgFile2 = multipartRequest.getFile("file");
//System.out.println("----->" + imgFile1.getOriginalFilename());
List<String> fileTypes = new ArrayList<String>();
fileTypes.add("jpg");
fileTypes.add("jpeg");
fileTypes.add("bmp");
fileTypes.add("gif");
fileTypes.add("png");
fileTypes.add("gif");
//String sssssString = imgFile1.getOriginalFilename();
//System.out.println(sssssString);
if(null != imgFile1){
if (!(imgFile1.getOriginalFilename() == null || "".equals(imgFile1
.getOriginalFilename()))) {
// String uploadfile = request.getServletContext().getRealPath("upload");
String uploadfile = request.getSession().getServletContext().getRealPath("/")
+"upload"+"\\";
//System.out.println("--->" + path1 + "--->" + path2);
//System.out.println("上傳路徑---->" + uploadfile);
// File file1 = this.getFile(imgFile1, path2, path1, fileTypes);
String path = uploadfile + "/"+dateNowStr;
File targetFile = new File(path);
               if(!targetFile.exists()){  
                   targetFile.mkdirs();
               }
File file1 = this.getFile(imgFile1, path, fileTypes);
//System.out.println("完成上傳------>" + file1);
re=file1.toString();
//int i=re.lastIndexOf("\\");

sub=re.substring(re.lastIndexOf("\\")+1);

//System.out.println("截取--->"+sub);
String tpbt = path + sub ;
//判斷檔案是否存在 標題圖片
               File targetFileTwo = new File(tpbt);
               
               if(!targetFileTwo.exists()){
               targetFile.mkdirs();
               }
//hdzx.setTpbt(tpbt);
//request.getSession().setAttribute("sss", dateNowStr);
   //request.getSession().setAttribute("fileName", imgFile1);
}
actioncontext.setContentType("text/html");
PrintWriter out;
try {
out = actioncontext.getWriter();
out.println("upload/"+dateNowStr+"/" + sub);
//out.flush();
//out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}

// private File getFile(MultipartFile imgFile, String typeName,
private File getFile(MultipartFile imgFile, String brandName, List fileTypes) {
String fileName = imgFile.getOriginalFilename();
// 擷取上傳檔案類型的副檔名,先得到.的位置,再截取從.的下一個位置到檔案的最後,最後得到副檔名
String ext = fileName.substring(fileName.lastIndexOf(".") + 1,
fileName.length());
//System.out.println("擷取副檔名---->" + ext);
// 對副檔名進行小寫轉換
ext = ext.toLowerCase();


File file = null;
if (fileTypes.contains(ext)) { // 如果副檔名屬於允許上傳的類型,則建立檔案
// file = this.creatFolder(typeName, brandName, fileName);
file = this.creatFolder(brandName, fileName);
//System.out.println("完整路徑--->" + file);
try {
imgFile.transferTo(file); // 儲存上傳的檔案
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
return file;
}


// private File creatFolder(String typeName, String brandName, String
// fileName) {
private File creatFolder(String brandName, String fileName) {
File file = null;
// typeName = typeName.replaceAll("/", ""); // 去掉"/"
// typeName = typeName.replaceAll(" ", ""); // 替換半形空格
// typeName = typeName.replaceAll(" ", ""); // 替換全形空格


// brandName = brandName.replaceAll("/", ""); // 去掉"/"
// brandName = brandName.replaceAll(" ", ""); // 替換半形空格
// brandName = brandName.replaceAll(" ", ""); // 替換全形空格


// File firstFolder = new File("c:/" + typeName); // 一級檔案夾
File firstFolder = new File(brandName);
//System.out.println("檔案路徑--->" + firstFolder);


String suffix = fileName.substring(fileName.lastIndexOf('.'));
//System.out.println("截取檔案尾碼--->" + suffix);
String prefix = System.currentTimeMillis() + "";
String newfileName = prefix + suffix;
if (firstFolder.exists()) { // 如果一級檔案夾存在,則檢測二級檔案夾
// File secondFolder = new File(firstFolder, brandName);
// if (secondFolder.exists()) { // 如果二級檔案夾也存在,則建立檔案
// file = new File(secondFolder, fileName);
// } else { // 如果二級檔案夾不存在,則建立二級檔案夾
// secondFolder.mkdir();
// file = new File(secondFolder, fileName); // 建立完二級檔案夾後,再合建檔案
// file = new File(fileName);
//System.out.println("現在路徑---->" + brandName);
file = new File(brandName + "\\" + newfileName);
// }
} else { // 如果一級不存在,則建立一級檔案夾
firstFolder.mkdirs();
// File secondFolder = new File(brandName);
// if (secondFolder.exists()) { // 如果二級檔案夾也存在,則建立檔案
// file = new File(secondFolder, fileName);
// } else { // 如果二級檔案夾不存在,則建立二級檔案夾
// secondFolder.mkdir();
// file = new File(secondFolder, fileName);
//System.out.println("現在路徑---->" + brandName);
file = new File(brandName + "\\" + newfileName);
// }
}
return file;
}
}

ok。結束



http://download.csdn.net/detail/leilei19920808/9500342  外掛程式下載地址。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.