Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery文件上传,启用二进制文件上传_Javascript_Jquery_Django_File Upload_Mime Types - Fatal编程技术网

Javascript jQuery文件上传,启用二进制文件上传

Javascript jQuery文件上传,启用二进制文件上传,javascript,jquery,django,file-upload,mime-types,Javascript,Jquery,Django,File Upload,Mime Types,我目前正在寻找一个基于HTML5和Javascript的文件上传程序,并遇到了jQuery文件上传。jQuery文件上传似乎有我需要的一切。 为了快速测试jQuery与Django的文件上传功能,我很幸运地在GitHub上找到了“Django jQuery文件上传”项目。此示例可以完美地处理图像gif、jpeg和png文件 问题: 我需要jQuery文件上传,允许用户上传mime类型为“application/octet stream”且扩展名为“xyz”的二进制文件。此外,我想增加最大上传文

我目前正在寻找一个基于HTML5和Javascript的文件上传程序,并遇到了jQuery文件上传。jQuery文件上传似乎有我需要的一切。

为了快速测试jQuery与Django的文件上传功能,我很幸运地在GitHub上找到了“Django jQuery文件上传”项目。此示例可以完美地处理图像gif、jpeg和png文件

问题:

我需要jQuery文件上传,允许用户上传mime类型为“application/octet stream”且扩展名为“xyz”的二进制文件。此外,我想增加最大上传文件大小为30MB。乍一看,这一切似乎都很简单,因为jQuery文件上传带有“acceptFileTypes”和“maxFileSize”属性。然而,不知何故,这些属性并没有得到考虑。几个小时以来,我一直没能成功地让它发挥作用。我还尝试了stackoverflow.com/questions/17451629/maxfilesize-and-acceptfiletypes-in-blueimp-file-upload-plugin-do-not-work-why提供的大多数建议

我如何在github.com/sigurdga/django-jquery-file-upload上获得基本示例f(“picture\u basic\u form.html”),以支持“应用程序/八位字节流”上载


/*jslint:正确*/
/*全局窗口,$*/
函数csrfSafeMethod(方法){
//这些HTTP方法不需要CSRF保护
返回(/^(获取|头|选项|跟踪)$/.test(方法));
}
$(函数(){
"严格使用",;
//将此更改为服务器端上载处理程序的位置:
var url='/upload/basic/';
var csrftoken=$.cookie('csrftoken');
$('#fileupload')。fileupload({
url:url,
跨域:false,
发送前:功能(xhr、设置){
如果(!csrfSafeMethod(settings.type)){
setRequestHeader(“X-CSRFToken”,CSRFToken);
}
},
数据类型:“json”,
完成:功能(e,数据){
$.each(data.result.files,函数(索引,文件){
$('

').text(file.name).appendTo('#files'); }); }, progressall:功能(e、数据){ var progress=parseInt(data.loaded/data.total*100,10); $('#progress.progress bar').css( “宽度”, 进度+“%” ); } }).prop('disabled',!$.support.fileInput) .parent().addClass($.support.fileInput?未定义:“已禁用”); });


解决方案:

@Razorphyn,你说得对,问题出在服务器端。在你的评论之后,我又看了一遍,发现了它<代码>模型.ImageField必须更改为
模型.FileField

-file=models.ImageField(上传到=“图片”)

+file=models.FileField(upload_to=“pictures”)
可能是服务器端的问题,因为我在代码中没有看到任何可以限制文件上载的内容,加上JQUEY UI演示:
此演示中只允许图像文件(JPG、GIF、PNG)(默认情况下没有文件类型限制).
Plus js来检查mimetype或扩展是不可靠的,因为它们不可靠,而且是sproof的主题,另外你也有问题,所以我只能依赖php