2017-03-05 44 views
0

我創建了一個文件上傳formscript但是當我嘗試將它用於iPhone時它不起作用。當我的客戶端是iOS時,PHP upload image script form不起作用

我得到沒有錯誤,或者error code 0當我var_dump的代碼。如果我使用另一個平臺,如Android,Windows PhoneDesktop,它會成功上傳文件。

我的代碼:

$valid_formats = array("jpg", "png", "gif", "zip", "bmp"); 
$max_file_size = 1024*20000; //20 mb 
$path = $_SERVER['DOCUMENT_ROOT'].'/beta/images/'; // Upload directory 
$count = 0; 

if(isset($_POST) and $_SERVER['REQUEST_METHOD'] == "POST"){ 
    // Loop $_FILES to execute all files 
    foreach ($_FILES['files']['name'] as $f => $name) {  
     if ($_FILES['files']['error'][$f] == 4) { 
      continue; // Skip file if any error found 
     }   
     if ($_FILES['files']['error'][$f] == 0) {    
      if ($_FILES['files']['size'][$f] > $max_file_size) { 
       $message[] = "$name is too large!."; 
       continue; // Skip large files 
      } 
      elseif(! in_array(pathinfo($name, PATHINFO_EXTENSION), $valid_formats)){ 
       $message[] = "$name is not a valid format"; 
       continue; // Skip invalid file formats 
      } 
      else{ // No error found! Move uploaded filesize 
      $info = getimagesize($_FILES["files"]["tmp_name"][$f]); 
      if ($info === FALSE) { 
       die("Unable to determine image type of uploaded file"); 
      } 
      if (($info[2] !== IMAGETYPE_GIF) && ($info[2] !== IMAGETYPE_JPEG) && ($info[2] !== IMAGETYPE_PNG)) { 
       die("Not a gif/jpeg/png"); 
      } 

       if(move_uploaded_file($_FILES["files"]["tmp_name"][$f], $path.time().'_'.$name)) 
       $count++; // Number of successfully uploaded file 
      } 
     } 
    } 
} 

move_uploaded_file功能return false作爲$count變量保持0

只有當我訪問iPhone的文件上傳腳本時,它纔會上傳。

表單代碼:

<form action="upload.php" method="post" enctype="multipart/form-data"> 
    <input id="file" type="file" name="files[]" multiple="multiple" accept="image/*"/><Note: Supported image format: .jpeg, .jpg, .png, .gif (Size up to 2mb)<input type="submit" value="Upload!" id="selectedButton"/> 
</form> 
+0

你的iOS應用程序和你的Android應用程序使用完全相同的代碼嗎?如果沒有,爲什麼不將代碼添加到您用於上傳的iOS? – 2017-03-05 15:19:05

+0

我沒有使用應用程序。這是一個html格式。 – Ophitect

回答

0

我已經在iPhone上見過這個。圖片名稱爲xxx.JPG,我的代碼正在檢查文件擴展名,但區分大小寫。

請將JPG添加到您的有效擴展名列表中。

如果失敗,請將$ _FILES的值寫入文件,然後確切地看到您在提交時收到的內容。

+0

我不敢相信大寫是問題所在。廢話,我花了幾個小時試圖弄清楚,這似乎是問題所在。 – Ophitect