使用 jquery 和 ajax 上传图片
Upload an image by using jquery and ajax
我正在尝试使用 ajax 上传照片。
我的输入:
<input type="file" name="defaultPhoto">
我的 jQuery 代码的一部分。
var form = #insertCredentials
var defaultPhoto = $('#' + form + ' ' + '[name = "defaultPhoto"]').prop('files');
我通过 ajax 调用发送 defaultPhoto
到我的 php 以及其他表单输入。
控制台返回以下错误:
TypeError: 'slice' called on an object that does not implement interface Blob.
您无法通过 ajax 发送文件
尝试在正常提交的表单目标中使用隐藏的 iframe
<form name="" action="/your_iframe_action_url" taget="hidden_iframe_name">
<input type="file" />
<input type="submit" />
</form>
<iframe name="hidden_iframe_name" style="width:0; height:0" />
在your_iframe_action_url中可以调用javascript父函数来执行事件成功或失败...模拟地下上传
你可以使用document.getElementById('whatever').files;
获取文件
然后使用
formdata
通过ajax发送文件。
这里是 example
您还可以使用文件 reader 在加载时显示文件
这里是 filereader
的例子
我已经使用 Dropzone JS
实现了 AJAX
文件上传方式。
它会让你的生活变得简单
您需要做的就是实例化 dropzonejs 对象并设置 options
Dropzone.options.myAwesomeDropzone = {
paramName: "file", // The name that will be used to transfer the file
maxFilesize: 2, // MB
accept: function(file, done) {
if (file.name == "image.jpg") {
done("Naha, you don't.");
}
else { done(); }
}
};
我正在尝试使用 ajax 上传照片。
我的输入:
<input type="file" name="defaultPhoto">
我的 jQuery 代码的一部分。
var form = #insertCredentials
var defaultPhoto = $('#' + form + ' ' + '[name = "defaultPhoto"]').prop('files');
我通过 ajax 调用发送 defaultPhoto
到我的 php 以及其他表单输入。
控制台返回以下错误:
TypeError: 'slice' called on an object that does not implement interface Blob.
您无法通过 ajax 发送文件 尝试在正常提交的表单目标中使用隐藏的 iframe
<form name="" action="/your_iframe_action_url" taget="hidden_iframe_name">
<input type="file" />
<input type="submit" />
</form>
<iframe name="hidden_iframe_name" style="width:0; height:0" />
在your_iframe_action_url中可以调用javascript父函数来执行事件成功或失败...模拟地下上传
你可以使用document.getElementById('whatever').files;
获取文件 然后使用
formdata
通过ajax发送文件。
这里是 example
您还可以使用文件 reader 在加载时显示文件
这里是 filereader
的例子我已经使用 Dropzone JS
实现了 AJAX
文件上传方式。
它会让你的生活变得简单
您需要做的就是实例化 dropzonejs 对象并设置 options
Dropzone.options.myAwesomeDropzone = {
paramName: "file", // The name that will be used to transfer the file
maxFilesize: 2, // MB
accept: function(file, done) {
if (file.name == "image.jpg") {
done("Naha, you don't.");
}
else { done(); }
}
};