1. uploadify传入formData问题。 尝试用$('#btn1a').uploadify('settings', 'formData', {"pid":1});不行啊!
你那不是方法错。
你用Jquery加载了uploadify。
在加载的同时再次使用加载,但是这时候已经被换了加载名了。所以加载会出错。(当你把button设置为display:none的时候)
你先使用Jquery包装input file后,在使用包装名即可
沿用你的例子:
var btn=$("#btn1a");
btn.uploadify({
里面那个就用btn.uploadify('settings','height',12);等等
如果要加载formData的话则要使用下面的模式。
btn.uploadify('settings','formData',{"abc":"abc"});
另外也有可能是你调试的时候使用了IE浏览器
如果是IE89就另说
IE67的话,我建议你每次调试的时候重新开浏览器,清除你的缓存。这是当时为了方便直接使用缓存的设计思路所致。
2. FormData()图片上传 ajax 报错500 这是哪里写错了
这是要打断点调试的,报500错误是出现在后台upphoto接口地方
3. 上传文件总是显示“http error”,怎么办事
HTTP
Error是一种响应错误。
解决方案如下:
1、上传接口要求表单中文件的字段是'file',即在表单中是:
`<input type="file" name="file">`
这样一个input,其name为'file'。
相对应的,要将uploadify的fileObjName这个选项设置为'file',
2、另外就是检查一下,token参数是否加入了uploadify的formData中,
根据代码补充:
'formData':{'uptoken':'${uptoken}'},
修改为
'formData':{'token':'${uptoken}'},
4. 请教高手formdata传递文件问题
我在chrome,FF上测试没有问题,可以上传。
php和你的一样
<!DOCTYPEhtml>
<html>
<head>
</head>
<body>
<divid="dropbox"style="height:200px;background:grey;"></div>
<script>
handleFiles=function(files){
varfile=files[0];
xhr=newXMLHttpRequest();
xhr.open("post","a.php",true);
xhr.setRequestHeader("X-Requested-With","XMLHttpRequest");
varfd=newFormData();
fd.append('file',file);
xhr.send(fd);
}
functiondragenter(e){
e.stopPropagation();
e.preventDefault();
}
functiondragover(e){
e.stopPropagation();
e.preventDefault();
}
functiondrop(e){
e.stopPropagation();
e.preventDefault();
handleFiles(e.dataTransfer.files);
}
vardropbox=document.getElementById("dropbox");
dropbox.addEventListener("dragenter",dragenter,false);
dropbox.addEventListener("dragover",dragover,false);
dropbox.addEventListener("drop",drop,false);
</script>
</body>
</html>
除了你的代码,其他都来自MDN。
5. ios post请求ur无法连接到服务器什么原因
随着asihttprequest的停止更新,许多人都转向了AFNetworking、 MKNetworkKit.我也是其中一个。于是我从网上找了许多文章作参考,但是结果都是失败告终。研究了好久都搞不透,最后还是请人帮忙搞定了。经常从网上索取免费资料的一员,要有回报的思想,也为了让更多的人少走些弯路,所以下面是代码:(有错误可以指出) 首先:将AFNetworking、UIKit+AFNetworking 加入到工程 然后在要使用的地方 #import "AFHTTPRequestOperationManager.h" #import "AFHTTPSessionManager.h" AFHTTPRequestOperationManager的post有两个方法,一个是普通的post,另一个是可以上传图片的 1.上传图片: AFHTTPRequestOperationManager *manager = []; manager.responseSerializer.acceptableContentTypes = [NSSetsetWithObject:@"text/html"]; NSDictionary *parameters =@{@"参数1":@"value1",@"参数2":@"value2"、、、}; NSData *imageData = UIImageJPEGRepresentation([UIImage imageNamed:@"1.png"], 1.0); [manager POST:@"替换成你要访问的地址"parameters::^(id<AFMultipartFormData> formData) { [formData appendPartWithFileData :imageData name:@"1" fileName:@"1.png" mimeType:@"image/jpeg"]; } success:^(AFHTTPRequestOperation *operation,id responseObject) { NSLog(@"Success: %@", responseObject); } failure:^(AFHTTPRequestOperation *operation,NSError *error) { NSLog(@"Error: %@", error); }]; 这个方法可以上传图片,如果不用上传图片,可以把这句去掉[formData appendPartWithFileData :imageDataname:@"1"fileName:@"1.png"mimeType:@"image/jpeg"] 2.普通的post AFHTTPRequestOperationManager *manager = []; manager.responseSerializer.acceptableContentTypes = [NSSetsetWithObject:@"text/html"]; NSDictionary *parameters = @{@"参数1":@"value1",@"参数2":@"value2"、、、}; [managerPOST:@"替换成你要访问的地址"parameters:parameters success:^(AFHTTPRequestOperation *operation,id responseObject) { NSLog(@"Success: %@", responseObject); }failure:^(AFHTTPRequestOperation *operation,NSError *error) { NSLog(@"Error: %@", error); }];
6. 如何用FormData实现多文件上传
可以用数组形式,我贴代码了
html 部分
<li class="list-group-item disabled select-file-div">
<input type="file" multiple="true" class="input-sm clear-l-r-padding select-file" data-uploadtype="photo"/>
</li>
js部分
var i,
data = new FormData();
...
for (i = 0; i < $('.select-file').files.length; i++) {
data.append('file[]', this.files[i]);
}
...//省略代码若干...在选择完成后调用下面$.ajax$.ajax({
url: 'url'
type: "POST",
data: data,
dataType: 'json',
processData: false,// *重要,确认为false
contentType: false,
beforeSend: function () {
... },
success: function (res) {
console.log(res);
},
error: function (res) {
...}
});
php 部分 接收数组
$fileField='file';
$name = $_FILES$fileField;
$tmp_name = $_FILES[$fileField]['tmp_name'];
$size = $_FILES[$fileField]['size'];
$error = $_FILES[$fileField]['error'];
/ 如果是多个文件上传则$file["name"]会是一个数组 /
if(is_Array($name)){
$errors=array();
/多个文件上传则循环处理 , 这个循环只有检查上传文件的作用,并没有真正上传 /
for($i = 0; $i < count($name); $i++){
/设置文件信息 /
if($this->setFiles($name[$i],$tmp_name[$i],$size[$i],$error[$i] )) {
if(!$this->checkFileSize() || !$this->checkFileType()){
$errors[] = $this->getError();
$return=false;
}
}else{
$errors[] = $this->getError();
$return=false;
}
/ 如果有问题,则重新初使化属性 /
if(!$return)
$this->setFiles();
}
7. formdata怎么用jquery上传
processData设置为false。因为data值是FormData对象,不需要对数据做处理。
<form>标签添加enctype="multipart/form-data"属性。
cache设置为false,上传文件不需要缓存。
contentType设置为false。因为是由<form>表单构造的FormData对象,且已经声明了属性enctype="multipart/form-data",所以这里设置为false。
8. on绑定的change去触发formData上传文件
首先,jq 是change事件,onchange是js的 其次,change事件是当你上传文件改变时触发,也就是 value 值改变时触发
9. 苹果手机不支持Html5的FormData()属性吗
把controls autoplay去掉,iOS的限制,<audio>``<video>必须由用户动作触发,不能自动播放