2012-07-13 159 views
-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 但downst移动...(如何将文件移动到另一个文件夹?

+0

不应该'回声$文件名;'是'回声$ _ POST [ “文件名”];'? – andrewsi 2012-07-13 16:17:05

+2

你看过手册吗? http://www.php.net/manual/en/features.file-upload.post-method.php – mario 2012-07-13 16:19:36

+2

[在PHP中获取发布的文件名]的可能重复(http://stackoverflow.com/questions/10940620/get ( – mario 2012-07-13 16:20:22

回答

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

+0

)它不工作( – 2012-07-13 16:18:19

+0

是的,我的网页是index.php,它仍然无法正常工作( – 2012-07-13 16:22:44

+0

看看它现在有效吗编辑。 – abhshkdz 2012-07-13 16:25:57

-1

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

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

编辑:什么abhshkdz写道。

+0

不,它不工作 – 2012-07-13 16:21:40

+2

一个空白的动作属性将简单地发布到同一页面,该页面基于OP的代码看起来是期望的行为 – 2012-07-13 16:29:37

1

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

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

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

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

移动它,我建议你阅读this tutorial

+0

好吧,我以这种方式移动并且不能移动 – 2012-07-13 16:40:30

+0

将最大大小字段移到输入上方。 – sachleen 2012-07-13 16:45:52

0

除了其他人所说,你失踪MAX_FILE_SIZE的声明,从PHP手册:

的MAX_FILE_SIZE隐藏字段(以字节为单位)必须位于 文件输入字段之前,其值为 PHP接受的最大文件大小。应始终使用此表单元素,因为它可以节省用户等待传输大文件的麻烦,以便发现它太大并且传输失败。请记住:在浏览器端欺骗这个 设置是相当容易的,所以不要依靠 的文件,这个功能会阻止更大的文件。对于应用程序的客户端用户来说,这仅仅是一个便利功能 。 最大尺寸的PHP设置(在服务器端),但是, 不能被愚弄。

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

相关问题