如何将文件移动到另一个文件夹?

时间:2012-07-13 16:16:09

标签: php html forms file input

<html>
<head>
<title>Main Page</title>
</head>
<body>
<h2>Main Page</h2>
<form  method="post" action="index.php" enctype="multipart/form-data">
<input type="file" name="filename">
<input type="hidden" name="MAX_FILE_SIZE" value="102400"/>
<input type="submit"  value="Upload file">
<br>
<?php
echo $_FILES['filename']['name'];
$uploads_dir = '/uploads';
$tmp_name = $_FILES['filename']['tmp_name'][$key];
$name = $_FILES['filename']['name'][$key];
move_uploaded_file($tmp_name, "$uploads_dir/$name");
?>
</body>
</html>

如何将此文件移至文件夹? 我尝试使用move_uploaded_file 但它最令人感动...(

4 个答案:

答案 0 :(得分:2)

使用此

echo $_FILES['filename']['name'];

正如 BrianDriscoll 所指出的,MAX_FILE_SIZE的声明必须在文件输入字段之前。

<form action = "index.php" method="post" enctype="multipart/form-data">
    <input type="hidden" name="MAX_FILE_SIZE" value="102400" />
    <input type="file" name="filename" />
    <input type="submit"  value="Upload file" />
</form>

$ _ FILES ['filename'] ['name'] - name包含上传用户的原始路径 文件。

$ _ FILES ['filename'] ['tmp_name'] - tmp_name包含驻留在服务器上的临时文件的路径。该文件应存在于具有临时名称的临时目录中的服务器上。

请参阅此tutorial on Tizag

答案 1 :(得分:1)

您可以使用$_FILES数组获取有关上传文件的信息。

var_dump($_FILES)看看它包含的内容。

$_FILES['filename']将包含文件的信息。

  • $_FILES['filename']['name']作为原始文件名
  • $_FILES['filename']['tmp_name']作为服务器上临时文件的路径。除非你移动它,否则这将被删除!使用move_uploaded_file()
  • 移动它

我建议阅读this tutorial

答案 2 :(得分:0)

除了其他人所说的,你还错过了PHP手册中的MAX_FILE_SIZE声明:

  

MAX_FILE_SIZE隐藏字段(以字节为单位)必须位于   文件输入字段,其值是接受的最大文件大小   PHP。应始终使用此表单元素,因为它可以节省用户   等待传输大文件的麻烦只是为了找到它   它太大了,转移失败了。请记住:愚弄这个   在浏览器端设置非常简单,所以永远不要依赖文件   此功能会阻止更大的尺寸。它只是一个   应用程序客户端用户的便利功能。   但是,最大尺寸的PHP设置(在服务器端)   不能被愚弄。

<input type="hidden" name="MAX_FILE_SIZE" value="102400"/>

答案 3 :(得分:-1)

您需要定义表单的action-attribute。

<form  method="post" action="" enctype="multipart/form-data">

编辑:以及abhshkdz写的内容。