2014-04-03 211 views
0

我有以下代碼 [x]PHP圖片上傳問題?

<form action="#" method="get" enctype="multipart/form-data"> 
    <label for="file">Filename:</label><br /> 
    <input type="text" name="type" placeholder="Type"><br /> 
    <input type="file" name="file"><br /> 
    <input type="submit" name="submit" value="Submit"> 
    </form> 
<? 
if($_GET['type']!="") { 
    $type = $_GET['type']; 
    $allowedExts = array("gif", "jpeg", "jpg", "png"); 
    if($_FILES["file"]["type"] == "image/gif") { 
     $encryptfile = md5(substr($_FILES["file"]["name"], 0, -4)); 
     $filename = $encryptfile. ".gif"; 
    } else if($_FILES["file"]["type"] == "image/jpeg") { 
     $encryptfile = md5(substr($_FILES["file"]["name"], 0, -5)); 
     $filename = $encryptfile. ".jpeg"; 
    } else if($_FILES["file"]["type"] == "image/jpg") { 
     $encryptfile = md5(substr($_FILES["file"]["name"], 0, -4)); 
     $filename = $encryptfile. ".jpg"; 
    } else if($_FILES["file"]["type"] == "image/pjpeg") { 
     $encryptfile = md5(substr($_FILES["file"]["name"], 0, -6)); 
     $filename = $encryptfile. ".pjpeg"; 
    } else if($_FILES["file"]["type"] == "image/x-png") { 
     $encryptfile = md5(substr($_FILES["file"]["name"], 0, -6)); 
     $filename = $encryptfile. ".x-png"; 
    } else if($_FILES["file"]["type"] == "image/png") { 
     $encryptfile = md5(substr($_FILES["file"]["name"], 0, -4)); 
     $filename = $encryptfile. ".png"; 
    } 
    $temp = explode(".", $filename); 
    $extension = end($temp); 
    if ((($_FILES["file"]["type"] == "image/gif") 
    || ($_FILES["file"]["type"] == "image/jpeg") 
    || ($_FILES["file"]["type"] == "image/jpg") 
    || ($_FILES["file"]["type"] == "image/pjpeg") 
    || ($_FILES["file"]["type"] == "image/x-png") 
    || ($_FILES["file"]["type"] == "image/png")) 
    && ($_FILES["file"]["size"] < 2097152) 
    && in_array($extension, $allowedExts)) 
    { 
    if ($_FILES["file"]["error"] > 0) { 
     echo '<a class="title" href="./upload.php">' .$_FILES["file"]["error"]. '</a>'; 
    } else { 
     echo "Upload: " . $filename . "<br>"; 
     echo "Type: " . $_FILES["file"]["type"] . "<br>"; 
     echo "Size: " . ($_FILES["file"]["size"]/1024) . " kB<br>"; 
     echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br>"; 
     if (!($stmt = $con->prepare("INSERT INTO `cat_images` (`title`,`path`) VALUES (?,?)")) || !is_object($stmt)) { 
      die("Error preparing: (" .$con->errno . ") " . $con->error); 
     } 
     $stmt->bind_param('ss', $type, $filename); 
     if($stmt->execute()) { 
      move_uploaded_file($_FILES["file"]["tmp_name"], "./assets/uploads" . $filename); 
      echo "Stored in: " . "./assets/uploads/" . $filename . "<br />"; 
      echo '<a href="./">Home</a>'; 
     } else { 
      echo 'SQL command could not be Executed, Contact a Staff Member'; 
      echo '<a href="./upload.php">Try Again</a>'; 
     } 
     $stmt->close(); 
    } 
    } 
} 
?> 

我沒有得到任何來自網頁或服務器的響應,所以我不知道是什麼問題。 你們有沒有人知道解決方案?

我正在嘗試製作圖片上傳表單,但我沒有從服務器獲取網站響應。

+0

方法應該發佈? – Debflav

+0

第一件事'方法=「得到」'方法=「POST」' –

回答

1

從超全局$_FILES你可以閱讀下面這句話的PHP文件:

通過HTTP POST方法上傳到當前腳本的項目組成的數組。

所以,你應該改變你的method="get"method="post"和檢索利用$_POST['type']$_GET['type']

0

我認爲問題是在這裏...你的代碼是...

move_uploaded_file($_FILES["file"]["tmp_name"], "./assets/uploads" . $filename); 

與下面的行替換它

move_uploaded_file($_FILES["file"]["tmp_name"], "/assets/uploads/".$filename); 

確保所有目錄的存在是/資產/上傳/