簡體   English   中英

使用iOS Safari的PHP圖片上傳未提供TMP_NAME

[英]PHP Image upload with iOS Safari not providing TMP_NAME

我最近在我的網站上注意到,用戶無法在手機上上傳個人資料圖片。 因此,我從根目錄復制了所有必需的HTML和PHP代碼。 個人資料圖片的移動位置也已修改,因此圖片被上傳到正確的位置。 現在,當我對其進行測試並嘗試使用iOS的Safari上傳個人資料圖片時,出現以下錯誤:

Warning: getimagesize() [function.getimagesize]: Filename cannot be empty in /home5/bobcatss/public_html/mobile/profile.propic.php on line 18

這是用戶提交的表單:

    <div class="propic"><form method="post" action="profile.propic.php" enctype="multipart/form-data">
        <input type="hidden" name="MAX_FILE_SIZE" value="100000" />
        Upload a profile picture <br><input name="file" type="file" id="file"/><br>
        <input type="submit" value="Upload">
    </form></div>

這是處理圖像的腳本:

<?php 

error_reporting(E_ALL);
ini_set('display_errors', 1);

include("../config.php");
session_start();

// Where the file is going to be placed 
$target_path = "../propics/";

$filename = $_FILES["file"]["name"];

$limit_size=100000;
$temp = explode(".", $filename);
$extension = end($temp);

$info = getimagesize($_FILES["file"]["tmp_name"]); //Line 18

$allowed_types = array(IMG_GIF, IMG_JPEG, IMG_PNG, IMG_JPG);
if (in_array($info[2], $allowed_types))
  {
  if ($_FILES["file"]["error"] > 0)
    {
    echo "Return Code: " . $_FILES["file"]["error"] . "<br>";
    exit;
    }
  else
    {
    if (file_exists("../propics/" . $_FILES["file"]["name"]))
      {
      echo $_FILES["file"]["name"] . " already exists. ";
      }
    else
      {
      move_uploaded_file($_FILES["file"]["tmp_name"],
      "../propics/" . $_FILES["file"]["name"]);

      try {

    //insert into database
    $stmt = $db->prepare('UPDATE users SET propic = :propic WHERE username = :username') ;
    $stmt->execute(array(
        ':propic' => $filename,
        ':username' => $_SESSION["USER"]
    ));

    //redirect to profile page
     header("Location: profile.php?msg=Profile picture upload complete");
    } catch(PDOException $e) {
        echo $e->getMessage();
    }


      }
    }
  }
else
  {
  echo "Invalid file";
  }
?> 

我通過電子郵件將圖像發送給自己,並嘗試從筆記本電腦上傳圖像,但它給了我同樣的錯誤。

我知道這很老,但是這也發生在我身上,我碰到了這個,想知道發生了什么。 如果您使用的是3G連接,則請求可能花費的時間超過MAX_REQUEST_TIMEOUT因此它可能失敗了( 此處重復

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM