Bootstrap的fileinput插件實現(xiàn)多文件上傳的方法
*1.bootstrap-fileinput 插件git下載地址
https://github.com/kartik-v/bootstrap-fileinput.git
2.解決使用bootstrap-fileinput得到返回值
上傳圖片
$("#file-0a").fileinput({ uploadUrl : "/upload_img",//上傳圖片的url allowedFileExtensions : [ 'jpg', 'png', 'gif' ], overwriteInitial : false, maxFileSize : 1000,//上傳文件最大的尺寸 maxFilesNum : 1,//上傳最大的文件數(shù)量 initialCaption: "請上傳商家logo",//文本框初始話value //allowedFileTypes: ['image', 'video', 'flash'], slugCallback : function(filename) { return filename.replace('(', '_').replace(']', '_'); } });
注意上傳圖片事件完之后,得到返回值寫法
$('#file-0a').on('fileuploaded', function(event, data, previewId, index) { var form = data.form, files = data.files, extra = data.extra, response = data.response, reader = data.reader; console.log(response);//打印出返回的json console.log(response.paths);//打印出路徑 });
jsp頁面
<input id="file-0a" class="file" type="file" multiple data-min-file-count="1" name="upload_logo">
其中data-min-file-count=”1”是指文件上傳最低數(shù)量
3.服務(wù)端代碼
采用了spring自帶插件上傳,框架為Springmvc
Bean
import java.util.List; public class Picture { private List<String> paths; public List<String> getPaths() { return paths; } public void setPaths(List<String> paths) { this.paths = paths; } }
Controller
@ResponseBody @RequestMapping(value="upload_img",method=RequestMethod.POST) public Picture uploadImage(@RequestParam MultipartFile[] upload_logo) throws IOException{ log.info("上傳圖片"); Picture pic = new Picture(); List<String> paths = new ArrayList<String>(); String dir = UploadUtil.getFolder(); for(MultipartFile myfile : upload_logo){ if(myfile.isEmpty()){ log.info("文件未上傳"); }else{ log.info("文件長度: " + myfile.getSize()); log.info("文件類型: " + myfile.getContentType()); log.info("文件名稱: " + myfile.getName()); log.info("文件原名: " + myfile.getOriginalFilename()); log.info("========================================"); //上傳文件 返回路徑 String path = UploadUtil.writeFile(myfile.getOriginalFilename(), dir, myfile.getInputStream()); log.info("文件路徑:"+path); paths.add(path); } } pic.setPaths(paths); return pic; }
uploadUtil
private static final Logger log = LoggerFactory.getLogger(UploadUtil.class); private UploadUtil() { } private static SimpleDateFormat fullSdf = new SimpleDateFormat("yyyyMMddHHmmssSSS"); private static SimpleDateFormat folder = new SimpleDateFormat( "yyyy" + File.separator + "MM" + File.separator + "dd"); /** * 返回yyyy File.separator MM File.separator dd格式的字符串 * * @return */ public static String getFolder() { return folder.format(new Date()); } /** * 文件上傳 * * @param srcName * 原文件名 * @param dirName * 目錄名 * @param input * 要保存的輸入流 * @return 返回要保存到數(shù)據(jù)庫中的路徑 */ public static String writeFile(String srcName, String dirName, InputStream input) throws IOException { log.info(srcName); // 取出上傳的目錄,此目錄是tomcat的server.xml中配置的虛擬目錄 String uploadDir = ContextUtil.getSysProp("upload_dir");//設(shè)置你上傳路徑 // 取出虛擬目錄的訪問路徑 String virtualDir = ContextUtil.getSysProp("virtual_dir");//設(shè)置你虛擬目錄訪問路徑 // 重命名文件 if (null != srcName) { srcName = srcName.substring(srcName.indexOf(".")); } else { srcName = ".jpg"; } String filename = ""; // 得到要上傳的文件路徑 filename = uploadDir + File.separator + dirName + File.separator + fullSdf.format(new Date()) + srcName; // 得到將要保存到數(shù)據(jù)中的路徑 String savePath = filename.replace(uploadDir, ""); savePath = virtualDir + savePath.replace("\\", "/"); File file = new File(filename); if (!file.getParentFile().exists()) { file.getParentFile().mkdirs(); } FileOutputStream fos = new FileOutputStream(file); // 一次30kb byte[] readBuff = new byte[1024 * 30]; int count = -1; while ((count = input.read(readBuff, 0, readBuff.length)) != -1) { fos.write(readBuff, 0, count); } fos.flush(); fos.close(); input.close(); return savePath; }
4.解決上傳時候遇到的一些問題
如遇見點擊上傳之后,進度條顯示為100%,jsp頁面顯示[Object,obejct],那么注意你后臺返回的是否為json對象。
以上所述是小編給大家介紹的Bootstrap的fileinput插件實現(xiàn)多文件上傳的方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
- Bootstrap Fileinput文件上傳組件用法詳解
- JS文件上傳神器bootstrap fileinput詳解
- Bootstrap fileinput文件上傳預(yù)覽插件使用詳解
- Bootstrap中的fileinput 多圖片上傳及編輯功能
- bootstrapfileinput實現(xiàn)文件自動上傳
- 基于bootstrap的上傳插件fileinput實現(xiàn)ajax異步上傳功能(支持多文件上傳預(yù)覽拖拽)
- 詳解bootstrap-fileinput文件上傳控件的親身實踐
- Bootstrap fileinput 上傳新文件移除時觸發(fā)服務(wù)器同步刪除的配置
- BootStrap fileinput.js文件上傳組件實例代碼
- Bootstrap FileInput實現(xiàn)圖片上傳功能
相關(guān)文章
利用js實現(xiàn)可進行時間和工作調(diào)度的任務(wù)管理器
這篇文章主要為大家詳細介紹了如何利用js實現(xiàn)一個可進行時間和工作調(diào)度的任務(wù)管理器,文中的示例代碼簡潔易懂,有需要的小伙伴可以參考一下2023-10-10JavaScript實現(xiàn)shuffle數(shù)組洗牌操作示例
這篇文章主要介紹了JavaScript實現(xiàn)shuffle數(shù)組洗牌操作,結(jié)合實例形式分析了javascript數(shù)組的定義、構(gòu)造、排序等相關(guān)操作技巧,需要的朋友可以參考下2019-01-01跟我學習javascript的prototype,getPrototypeOf和__proto__
跟我學習javascript的prototype,getPrototypeOf和__proto__,深入學習了三個用來訪問prototype的方法,感興趣的小伙伴們可以參考一下2015-11-11es6 javascript對象Object.values() , Object.entr
這篇文章主要介紹了es6 javascript對象Object.values() , Object.entries()的示例代碼,本文結(jié)合示例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-12-12