使用 PHP - move_uploaded_file 上传图片失败
Image upload failing using PHP - move_uploaded_file
我一直在搜索堆栈溢出和其他教程,了解如何使用 php 上传文件。下面的脚本一直有效,直到它到达条件为 move_uploaded_file($file_temp, $file_destination) 的 if 语句,此时它回显 "file not uploaded"。
包含 chmod 函数的 if 语句是我尝试将上传文件夹的文件权限更改为 0777(我很确定每个人都可以读写),因为这是许多相关人员的建议堆栈溢出答案。我认为目前问题不是文件权限。
所以基本上我不知道这有什么问题。感谢帮助:)
<form action="upload.php" method="post" enctype="multipart/form-data">
Your Photo: <input type="file" name="image" />
<input type="submit" name="submit" value="Submit" />
</form>
<?php
print_r($_FILES);
// file properties
$file_name = $_FILES['image']['name'];
$file_tmp_name = $_FILES['image']['tmp_name'];
$file_size = $_FILES['image']['size'];
$file_error = $_FILES['image']['error'];
// get the extension of the file
$file_ext = explode('.', $file_name);
$file_ext = strtolower(end($file_ext));
var_dump(file_exists('uploads'));
// this is false
if(chmod('uploads', 0777) ){
echo " booooh";
}
else{
echo "naaah";
}
$file_name_new = uniqid('', true) . '.' . $file_ext;
echo "<br>";
echo $file_destination = '/uploads/' . $file_name;
// this is false too
if(move_uploaded_file($file_temp, $file_destination)) {
echo "<br>$file_destination<br>";
echo "hello world<br>";
}
else {
echo "<br>file not uploaded<br>";
}
?>
你写:
move_uploaded_file( $file_temp, $file_destination );
$file_temp
未在您的脚本中定义。原来的文件路径是$file_tmp_name
.
move_uploaded_file( $file_tmp_name, $file_destination );
另请注意,您从不使用 $file_name_new
。
补充说明:目标路径必须是绝对文件路径:/uploads/
目录必须位于目录树的顶层,而不是在文档根目录下。
我一直在搜索堆栈溢出和其他教程,了解如何使用 php 上传文件。下面的脚本一直有效,直到它到达条件为 move_uploaded_file($file_temp, $file_destination) 的 if 语句,此时它回显 "file not uploaded"。
包含 chmod 函数的 if 语句是我尝试将上传文件夹的文件权限更改为 0777(我很确定每个人都可以读写),因为这是许多相关人员的建议堆栈溢出答案。我认为目前问题不是文件权限。
所以基本上我不知道这有什么问题。感谢帮助:)
<form action="upload.php" method="post" enctype="multipart/form-data">
Your Photo: <input type="file" name="image" />
<input type="submit" name="submit" value="Submit" />
</form>
<?php
print_r($_FILES);
// file properties
$file_name = $_FILES['image']['name'];
$file_tmp_name = $_FILES['image']['tmp_name'];
$file_size = $_FILES['image']['size'];
$file_error = $_FILES['image']['error'];
// get the extension of the file
$file_ext = explode('.', $file_name);
$file_ext = strtolower(end($file_ext));
var_dump(file_exists('uploads'));
// this is false
if(chmod('uploads', 0777) ){
echo " booooh";
}
else{
echo "naaah";
}
$file_name_new = uniqid('', true) . '.' . $file_ext;
echo "<br>";
echo $file_destination = '/uploads/' . $file_name;
// this is false too
if(move_uploaded_file($file_temp, $file_destination)) {
echo "<br>$file_destination<br>";
echo "hello world<br>";
}
else {
echo "<br>file not uploaded<br>";
}
?>
你写:
move_uploaded_file( $file_temp, $file_destination );
$file_temp
未在您的脚本中定义。原来的文件路径是$file_tmp_name
.
move_uploaded_file( $file_tmp_name, $file_destination );
另请注意,您从不使用 $file_name_new
。
补充说明:目标路径必须是绝对文件路径:/uploads/
目录必须位于目录树的顶层,而不是在文档根目录下。