-1
<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

4 回答 4

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包含驻留在服务器上的临时文件的路径。该文件应存在于服务器上具有临时名称的临时目录中。

请参阅有关 Tizag的本教程。

于 2012-07-13T16:17:12.080 回答
1

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

var_dump($_FILES)看看它包含什么。

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

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

我建议阅读本教程

于 2012-07-13T16:24:02.987 回答
0

除了其他人所说的之外,您缺少 PHP 手册中的 MAX_FILE_SIZE 声明:

MAX_FILE_SIZE 隐藏字段(以字节为单位)必须在文件输入字段之前,其值是 PHP 接受的最大文件大小。应始终使用此表单元素,因为它为用户节省了等待传输大文件却发现文件太大而传输失败的麻烦。请记住:在浏览器端欺骗此设置非常容易,因此切勿依赖此功能阻止更大大小的文件。它只是为应用程序客户端的用户提供的便利功能。然而,最大尺寸的 PHP 设置(在服务器端)不能被愚弄。

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

于 2012-07-13T16:24:58.450 回答
-1

You need to define the action-attribute of the form.

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

edit: and what abhshkdz wrote.

于 2012-07-13T16:18:21.133 回答