Php服务器5.3.3不'不检测附件文件在我的Post请求(5.4.3)


Php server 5.3.3 doesn't detect attachment file in my Post requests (5.4.3 does)

我使用android volley - http多部分请求发布mime文件到我的php服务器。Php 5.4.3可以捕获附件文件,但Php 5.3.3不能:

$_FILES['uploadedfile'] == empty array

(请求正确-正确的请求长度)。

有人能解释一下吗?为什么php 5.3.3没有?谢谢,我是PHP新手。

如何在Android中使用Volley发送"multipart/form-data"POST

My http request:

{MultipartFormEntity@830061806024} 
 multipart = {HttpBrowserCompatibleMultipart@830061809784} 
  parts = {ArrayList@830059119584}  size = 1
   0 = {FormBodyPart@830067533016} 
    body = {ByteArrayBody@830067487680} 
    header = {Header@830067537968} "[Content-Disposition: form-data; name="uploadedfile"; filename="test.mim", Content-Type: application/octet-stream, Content-Transfer-Encoding: binary]"
    name = {String@830059743272} "uploadedfile"
  boundary = {String@830061809752} "6ANZ75BgJPrWEv1L0jU9o-IKj5ftRzcpKiBqY7N"
  charset = {CharsetICU@830037109480} "java.nio.charset.CharsetICU[UTF-8]"
  subType = {String@830057480912} "form-data"
 contentType = {BasicHeader@830061692384} "Content-Type: multipart/form-data; boundary=6ANZ75BgJPrWEv1L0jU9o-IKj5ftRzcpKiBqY7N; charset=UTF-8"
  name = {String@830037147880} "Content-Type"
  value = {String@830061806056} "multipart/form-data; boundary=6ANZ75BgJPrWEv1L0jU9o-IKj5ftRzcpKiBqY7N; charset=UTF-8"
 contentLength = 4299

这段代码破坏了php函数:

    try {
        entityBuilder.setCharset(CharsetUtils.get("UTF-8"));
    } catch (UnsupportedEncodingException e) {
        e.printStackTrace();
    }
>> Content-Type =
    multipart/form-data; boundary=1ft_IEmfaejQeazBUZDaPUqA-bkzkalk0; charset=UTF-8

实际上,上面的代码使php服务器无法获取上传的文件,因为它在边界部分之后具有字符集类型。下面的内容类型使我的代码工作:

    multipart/form-data; boundary=1ft_IEmfaejQeazBUZDaPUqA-bkzkalk0
在某些版本中,php服务器无法识别上传的文件。非常感谢BNK的建议。