[英]move_uploaded_file() not working with valid ['tmp_name']
這讓我感到困惑。 出於某些奇怪的原因,move_uploaded_file()不會將文件放入目錄,但是會返回有效的tmp_name和名稱。 因此,在這種情況下,$ file始終=為false。
無論如何,有人可以指出這段代碼有問題嗎? 這將不勝感激。
<?php
include 'realtydevkit.php';
session_start();
$name = $_FILES['yourlogo']['name'];
$tmpname = $_FILES['yourlogo']['tmp_name'];
if ($name) {
$directory = $name;
$userid = $_SESSION['userid'];
$type = "logo";
$file = move_uploaded_file($tmpname, $directory);
if ($file == true) {
mysql_query("INSERT INTO usercontent
(`userid`, `type`, `url`) VALUES
('$userid', '$type', '$directory')");
echo 'Uploaded';
echo "<img src='".$directory."'/>";
} else {
echo 'There was an error moving the file.';
}
}
?>
您也沒有檢查$_FILES['yourlogo']['error']
。
這是您檢查上傳文件的內容:
$_FILES['yourlogo']['error']
。 如果它是UPLOAD_ERR_OK
(0),則繼續。 is_uploaded_file($_FILES['yourlogo']['tmp_name'])
。 如果失敗,PHP將不知道出了什么問題,但是它不信任該文件。 move_uploaded_file()
。 如果move_uploaded_file()
錯誤,則PHP無法在目標位置寫入文件。 這通常是無效的路徑,或者沒有權限。
請注意, $_FILES['yourlogo']['name']
是文件在上傳者PC上的名稱。 它不應包含任何路徑信息。
<?php
include 'realtydevkit.php';
session_start();
$name = $_FILES['yourlogo']['name'];
$tmpname = $_FILES['yourlogo']['tmp_name'];
if ($name) {
$directory = $name;
$userid = $_SESSION['userid'];
$type = "logo";
$file = move_uploaded_file($tmpname, "path of ur directore/".$directory);
if ($file == true) {
mysql_query("INSERT INTO usercontent
(`userid`, `type`, `url`) VALUES
('$userid', '$type', '$directory')");
echo 'Uploaded';
echo "<img src='".$directory."'/>";
}
else
{
echo 'There was an error moving the file.';
}
}
?>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.