我正在使用Ajax脚本将值发布到php文件中以便上传文件 的目的。
我已经在wordpress的页面模板中完成了这段代码。
而下面是我的Ajax脚本
jQuery("#apply_job").submit(function (event) {
$.ajax({
url: "http://example.com/file.php",
type: "POST",
data: new FormData(this),
contentType: false,
cache: false,
processData:false,
success: function(data)
{
alert(data);
if(data=="Mail sent successfully") {
document.getElementById("apply_job").reset();
hideAndShow('applyBox');
return false;
} else {
return false;
}
}
});
});
而下面是我使用
if(move_uploaded_file($_FILES["opn_file"]["tmp_name"],WP_CONTENT_DIR .'/uploads/'.basename($_FILES['opn_file']['name']))){
$attachments = array(WP_CONTENT_DIR . '/uploads/'.$_FILES["opn_file"]["name"]);
} else {
echo $result = "No attachment found.";
exit;
} PHP脚本
我正在使用变量发送带附件的邮件。
我的问题:
$_POST阵列和$_FILES["opn_file"]["name"]价值没有得到在Chrome浏览器到PHP文件。并且相同的代码在Firefox中工作。
如果有任何我想解释,请让我知道。
问题编辑零件
我看到了在控制台部分下面的内容(Chrome浏览器)
响应头
Accept-Ranges:bytes
Age:0
Connection:keep-alive
Content-Length:3
Content-Type:multipart/form-data; boundary=----ebKitFormBoundarycjW5QOMAnsUD7Y8f
Date:Thu, 17 Dec 2015 14:15:44 GMT
Server:xxxx
Via:1.1 varnish
X-Pingback:http://example.com/xmlrpc.php
X-Powered-By:PHP/5.5.9-1ubuntu4.14
X-Varnish:498399885
请求头
Accept:*/*
Accept-Encoding:gzip, deflate
Accept-Language:en-US,en;q=0.8
Connection:keep-alive
Content-Length:11509
Content-Type:multipart/form-data; boundary=----WebKitFormBoundarycjW5QOMAnsUD7Y8f
Cookie:_gat=1; _ga=GA1.2.1724306164.1450332097
Host:example.com
Origin:http://example.com
Referer:http://example.com/career-test/
User-Agent:Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.86 Safari/537.36
X-Requested-With:XMLHttpRequest
请求有效载荷
------WebKitFormBoundarycjW5QOMAnsUD7Y8f
Content-Disposition: form-data; name="file"; filename="test.docx"
Content-Type: application/vnd.openxmlformats-officedocument.wordprocessingml.document
------WebKitFormBoundarycjW5QOMAnsUD7Y8f--
我希望,这一新的变化可能有助于找到任何解决办法..
2015-12-17
satya
+0
既然你已经使用'jQuery'你为什么不尝试用[连载](https://api.jquery.com发送数据'serializing'形式/ serialize /) –
+0
@xpy我也试过。但是,没有运气。而且我也尝试过使用静态数据..就像'{key1:'value1',key2:'Value2'}'。没有什么是适合我的。 :( –
+1
我怀疑你的问题可能在别的地方,你确定你的js代码没有错误地执行吗?控制台说什么?alert(data);说什么?另外,你可以在'chrome开发者',在'网络'选项卡上,您可以查看您对服务器的请求,是否应该将所有内容都发送出去? –