2012-07-13 230 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"/>

相關問題