application.js 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. $(function(){
  2. var uploader = new plupload.Uploader({
  3. browse_button : 'browse', //触发文件选择对话框的按钮,为那个元素id
  4. url : '/admin/app/upload', //服务器端的上传页面地址
  5. flash_swf_url : '/plugins/plupload/js/Moxie.swf', //swf文件,当需要使用swf方式进行上传时需要配置该参数
  6. silverlight_xap_url : '/plugins/plupload/js/Moxie.xap', //silverlight文件,当需要使用silverlight方式进行上传时需要配置该参数
  7. drop_element : 'drop',
  8. multi_selection:false,
  9. headers: {
  10. 'X-CSRF-TOKEN': $('meta[name="_token"]').attr('content')
  11. },
  12. filters: {
  13. mime_types : [ //只允许上传图片和zip文件
  14. { title : "Image files", extensions : "jpg,gif,png" }
  15. ],
  16. max_file_size : '400kb', //最大只能上传400kb的文件
  17. prevent_duplicates : true //不允许选取重复文件
  18. }
  19. });
  20. uploader.bind('FilesAdded',function(uploader,files){
  21. var file_name = files[0].name; //文件名
  22. //构造html来更新UI
  23. previewImage(files[0],function(imgsrc){
  24. $(".preview").attr('src',imgsrc);
  25. });
  26. uploader.start();
  27. });
  28. uploader.bind('FileUploaded',function(uploader,file,responseObject){
  29. $("input[name='image']").val(responseObject['response']);
  30. });
  31. uploader.init();
  32. function previewImage(file,callback){//file为plupload事件监听函数参数中的file对象,callback为预览图片准备完成的回调函数
  33. if(!file || !/image\//.test(file.type)) return; //确保文件是图片
  34. if(file.type=='image/gif'){//gif使用FileReader进行预览,因为mOxie.Image只支持jpg和png
  35. var fr = new mOxie.FileReader();
  36. fr.onload = function(){
  37. callback(fr.result);
  38. fr.destroy();
  39. fr = null;
  40. }
  41. fr.readAsDataURL(file.getSource());
  42. }else{
  43. var preloader = new mOxie.Image();
  44. preloader.onload = function() {
  45. preloader.downsize( 300, 300 );//先压缩一下要预览的图片,宽300,高300
  46. var imgsrc = preloader.type=='image/jpeg' ? preloader.getAsDataURL('image/jpeg',80) : preloader.getAsDataURL(); //得到图片src,实质为一个base64编码的数据
  47. callback && callback(imgsrc); //callback传入的参数为预览图片的url
  48. preloader.destroy();
  49. preloader = null;
  50. };
  51. preloader.load( file.getSource() );
  52. }
  53. }
  54. })