我正在网站上工作,我希望用户能够上传文件.所以我正在努力学习如何做到这一点.我研究过,它说我必须使用函数move_uploaded_file().我编写的代码就像在示例中一样(更改数据),但它不起作用.请帮助我,我是新来的.这是我到目前为止所做的:
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<form action="upload_file.php" method="POST" enctype="multipart/form-data">
<input type="hidden" name="MAX_FILE_SIZE" value="30000" />
<input type="file"name="file">
<input type="submit">
</form>
</body>
<html>
Run Code Online (Sandbox Code Playgroud)
这是upload_file.php:
<!DOCTYPE html>
<html>
<head>
<head>
<body>
<?php
$move = "/Users/George/Desktop/uploads/";
echo $_FILES["file"]['name']."<br>";
echo $_FILES["file"]['tmp_name']."<br>";
echo $_FILES["file"]['size']."<br>";
echo $_FILES['file']['error']."<br>";
move_uploaded_file($_FILES['file']['name'], $move);
?>
<body>
<html>
Run Code Online (Sandbox Code Playgroud)
Vla*_*ler 47
文件将存储在临时位置,使用tmp_name而不是name
if (move_uploaded_file($_FILES['image']['tmp_name'], __DIR__.'/../../uploads/'. $_FILES["image"]['name'])) {
echo "Uploaded";
} else {
echo "File was not uploaded";
}
Run Code Online (Sandbox Code Playgroud)
小智 18
尝试使用copy()函数而不是move_uploaded_file().它的工作对我来说.
copy($_FILES['file']['tmp_name'], $path);
Run Code Online (Sandbox Code Playgroud)
Sha*_*ran 16
这是一个有效的例子.
HTML表格:
<form enctype="multipart/form-data" action="upload.php" method="POST">
<input type="hidden" name="MAX_FILE_SIZE" value="512000" />
Send this file: <input name="userfile" type="file" />
<input type="submit" value="Send File" />
</form>
Run Code Online (Sandbox Code Playgroud)
PHP代码:
<?php
$uploaddir = '/var/www/uploads/';
$uploadfile = $uploaddir . basename($_FILES['userfile']['name']);
echo "<p>";
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
echo "File is valid, and was successfully uploaded.\n";
} else {
echo "Upload failed";
}
echo "</p>";
echo '<pre>';
echo 'Here is some more debugging info:';
print_r($_FILES);
print "</pre>";
?>
Run Code Online (Sandbox Code Playgroud)
$move = "/Users/George/Desktop/uploads/".$_FILES['file']['name'];
Run Code Online (Sandbox Code Playgroud)
那是一个.
move_uploaded_file($_FILES['file']['tmp_name'], $move);
Run Code Online (Sandbox Code Playgroud)
那是两个.
检查uploads目录是否可写
那是三个.
返回值
成功时返回TRUE.
如果filename不是有效的上载文件,则不会执行任何操作,move_uploaded_file()将返回FALSE.
如果filename是有效的上载文件,但由于某种原因无法移动,则不会执行任何操作,并且move_uploaded_file()将返回FALSE.此外,还会发出警告.
查看函数的返回值.
而已.
也许您需要为您的文件授予更多权限。
假设您的代码在 /var/www/my_project 下
尝试 chmod -R 777 /var/www/my_project
这个答案来晚了,但它可能会帮助像它帮助我的人
只需确保您已授予目标文件的用户权限
sudo chown -R www-data:www-data /Users/George/Desktop/uploads/