django html图片上传,Django + zyUpload 实现图片的上传

本文详细介绍了HTML5上传插件zyUpload的使用,包括如何过滤文件大小和格式。在Django环境中,使用ImageField需安装Pillow。在前端,确保zyFile.js的formdata.append与后台request.FILES.get的name一致,并设置上传路径。同时,文章还提到了在urls.py中配置静态资源的规则。
摘要由CSDN通过智能技术生成

zyUpload 是一个界面绝佳、体验超棒的 HTML5 上传插件,在网上随便就可以下载到。

49e62974d98e

上传前的效果图

49e62974d98e

上传后的效果图

zyFile.js 中的一些接口都是在 zyUpload.js 中实现!zyFile.js 中给外部提供的函数接口 filterFile 在 zyUpload.js 中可以找到,用来进行文件的过滤!对于 filterFile 这个接口,实现如下(当然,你可以根据自己的需求来实现,在这里只是想上传图片文件而已):

/**

* 功能:过滤上传的文件格式等

* 参数: files 本次选择的文件

* 返回: 通过的文件

*/

this.funFilterEligibleFile = function(files){

var arrFiles = []; // 替换的文件数组

for (var i = 0, file; file = files[i]; i++) {

if (file.size >= 20480000) {

alert('您这个"'+ file.name +'"文件大小过大');

} else {

// 在这里需要判断当前所有文件中

var fileExt = file.name.substr(file.name.lastIndexOf(".")).toLowerCase(); //获得文件后缀名

if(fileExt == ".png" || fileExt == ".gif" || fileExt == ".jpg" || fileExt == ".jpeg")

arrFiles.push(file); //如果文件是图片格式,那么就放入文件的数组

else {

alert("文件仅限于png, gif, jpeg, jpg格式!");

}

}

}

return arrFiles;

};

filterFile: function(files) {

// 过滤合格的文件

return self.funFilterEligibleFile(files);

}

有以下几点需要注意:

在 Django 中使用 ImageField 之前,需要安装 Pillow,不然会报错:Cannot use ImageField because Pillow is not installed.

保证 zyFile.js 文件中的 formdata.append(name, file) 和后台逻辑代码中的 request.FILES.get(name) 的 name 属性值一样

在 initUpload.js 中设置 url 为上传路径

对于上传图片的查看需要在相应地 urls.py 文件中加入匹配规则 url(r'^media/(?P.*)$', 'django.views.static.serve', {'document_root': settings.MEDIA_ROOT})

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值