我正在努力解决一个问题。我使用的例子,从这个线程ajax中的数据和文件 - 如何处理由JS FormData发送的帖子
我用这个例子
$("form#data").submit(function(){
var formData = new FormData($(this)[0]);
$.ajax({
url: window.location.pathname,
type: 'POST',
data: formData,
async: false,
success: function (data) {
alert(data)
},
cache: false,
contentType: false,
processData: false
});
return false;
});
我的例子是这样的:
HTML表单+ Ajax的发送
<form enctype="multipart/form-data" method="post" name="fileinfo" id="fm" action="">
<label>Your email address:</label>
<input type="email" autocomplete="on" autofocus name="userid" placeholder="email" required size="32" maxlength="64" /><br />
<label>Custom file label:</label>
<input type="text" name="filelabel" size="12" maxlength="32" /><br />
<label>File to stash:</label>
<input type="file" name="file" required />
<input type="submit" value="Stash the file!" />
</form>
<div id="output"></div>
<script>
$('#fm').on('submit', function (event) {
event.preventDefault();
var fd = new FormData($(this)[0]);
fd.append("CustomField", "This is some extra data");
$.ajax({
url: __baseUrlWWW + "/test.php",
type: "POST",
data: fd,
processData: false, // tell jQuery not to process the data
contentType: false // tell jQuery not to set contentType
});
return false;
});
</script>
和每一个ing会好的 - 但是当我发送这个到php,我有阅读帖子的问题。我有POST以这种形式
萤火虫返回浏览器新标签
Array (
[
-----------------------------318572418129603 Content-Disposition:_form - data;
_name] => "userid" [email protected]
-----------------------------318572418129603 Content-Disposition: form - data;
name = "filelabel" test
-----------------------------318572418129603 Content-Disposition: form - data;
name = "file";
filename = "b24_uam.png" Content-Type: image/png PNG IHDRHHÚőpPLTE˙˙˙UÂÓ~°IDAThíŐAV1Pß˙Ň7lOytŽşP Óü°đňúęľâzý~ŐV\˛O-e'NëC=x3,OdePú>ľ<qł-?× îX~ Wóôą|hÚžŘҢäę~ŚÎÄ_ĺ;5 şÜťk[>Ë:˝^50`ŃÉSKEÖű@ö3v;wK]"kÄ[ŻSÖRyűćŢóö?ÎRy{ÂÇ^lů,á˙ż'îŘň˝Ź-\[ÓĹ(EĺdĎâeWČRÝŽš6z\°6şlÍŘËŹĽ*lÖŕáeZŮR=ĆFÓ50,5É-¨yímŠĘMđ˝1ĺ°ÔeÍ=ÔČRufGŁ`ŠËĺböđŔ句PöđČňQň-üÄđ×\°$'CvÄ÷Aay*żcÁRŮŠOďÖÝÍm)KFÍć^ [ôżŤŢŕŔčä-uz0óÚojy$_ôtSKMâkDN)¸eŠIüů#jć˝-˘ˇT¤×׎íkźů}b;] => "CustomField" This is some extra data
#-----------------------------318572418129603--)
Array
(
[file] => Array
(
[name] => test.png
[type] => image/png
[tmp_name] => C:\wamp\tmp\php4E16.tmp
[error] => 0
[size] => 507
)
)
Array
(
[userid] => [email protected]
[filelabel] => test
[CustomField] => This is some extra data
)
HTML回报我的问题是 - 如何在PHP阅读本? Firebug中的浏览器在控制台中显示正确的格式数组 - $ _post和$ _files,但浏览器中的视图以这种方式显示它。我在wamp localhost上运行它 - 但那不应该是我认为的问题?
在php中有什么问题?不太清楚你的问题是什么 – charlietfl 2015-03-03 13:34:53
我的问题是,当我使用print_r($ _ POST)我没有看到正确的数组 - 但仍RAW原始数据 - 我不能使用例如$ _POST ['name']。 – pietr 2015-03-03 14:10:28
需要更多输入。 :)按照您提供的示例链接运行代码,一切正常。请在发布此条件时发布您正在使用的PHP代码和表单HTML。 – bloodyKnuckles 2015-03-03 16:15:46