我尝试在php中创建一个简单的文件上传器,但我在开始时已经失败了。
这是教程:
https://www.youtube.com/watch?v=PRCobMXhnyw
所以在开始时我应该创建一个文件 index.html :
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>File upload</title>
</head>
<body>
<from action="upload.php" method="post" enctype="multipart/form-data">
<input type="file" name="file">
<input type="submit" value="upload">
</form>
</body>
</html>
和 upload.php:
<?php
if(isset($_FILES['file'])) {
$file = $_FILES['file'];
print_r($file);
}
当我上传文件时,我应该在屏幕上看到:
Array ([name] => uploadme.txt [type/plain [tmp_name] =>
/Applications/MAMP/tmp/php/phpXkZIVD [error] => 0 [size] => 9)
但它不起作用。如果我点击“上传”,就没有任何事情发生。我做错了什么?
答案 0 :(得分:2)
错误:
您在<form
<from action="upload.php" method="post" enctype="multipart/form-data">
应该是
<form action="upload.php" method="post" enctype="multipart/form-data">
它阻止您提交表单
你应该做什么:
您只是打印上传的文件,但是您应该将其移动到这样的文件夹中。
$target_file = 'upload/'.basename($_FILES["file"]["name"]);
move_uploaded_file($_FILES["file"]["tmp_name"], $target_file);
注意:
您应该创建一个名为upload
的文件夹,并且该文件夹应具有读/写权限。
所以,你的代码看起来应该是这样的
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>File upload</title>
</head>
<body>
<form action="upload.php" method="post" enctype="multipart/form-data">
<input type="file" name="file">
<input type="submit" value="upload">
</form>
</body>
</html>
<?php
if(isset($_FILES['file'])) {
$file = $_FILES['file'];
print_r($file);
$target_file = 'upload/'.basename($_FILES["file"]["name"]);
move_uploaded_file($_FILES["file"]["tmp_name"], $target_file);
}
?>