2010-04-16 96 views
3

我想寫一個腳本,通過html表單上傳文件。 當我點擊提交沒有任何反應。php上傳文件函數

文件:upload_form.html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>Untitled Document</title> 
</head> 
<body> 

<form action="do_upload.php" method="post" enctype="multipart/form-data"></form> 
<p><strong>File to upload</strong></p> 
<p><input name="img1" type="file" size="30" /></p> 
<p><input name="submit" type="submit" value="Upolad File" /></p> 

</body> 
</html> 

文件:do_upload.php

<?php 
if ($_FILES[img1] != "" { 
    @copy($_FILES[img1] [tm_name], "/tmp" .$_FILES[img1][name]) 
    or die("couldnt copy the file"); 
} else { 
    die("no file specified"); 
} 
?> 

<HTML> 
<head> 
<title>Successfull File Upload</title> 
</head> 
<body> 

<h1>Success</h1> 
<p>You sent: <? echo $_FILES[img1][name]; ?>, a <? echo $_FILES[img1][size]; ?>byte filw with a mime type of <? echo $_FILES[img1][type]; ?></p> 

</body> 
</HTML> 
+2

「沒有任何反應」,如「你得到一個空白頁面」? 「它不提交」?你的第二個文件有語法錯誤,這可能是沒有任何事情發生的原因。 (實際上也是第一個:) :) – deceze 2010-04-16 02:48:21

+0

因爲它沒有提交,所以我早早地收到了。 現在我必須在第2行找到do_upload.php中的錯誤 – Jacksta 2010-04-16 02:51:46

+2

您錯過了小括號。應該引用字符串文字鍵('$ _FILES ['img1']'而不是'$ _FILES [img1]'; http://php.net/manual/en/language.types.array.php#language.types。 array.foo-巴)。此外,您應該使用'empty','isset'或'array_key_exists',而不是將可能不存在的數組值與空字符串進行比較。最後,不要這樣使用'die'(http://www.phpfreaks.com/blog/or-die-must-die)。 – outis 2010-04-16 02:53:07

回答

6
<form action="do_upload.php" method="post" enctype="multipart/form-data"></form> 
<p><strong>File to upload</strong></p> 
<p><input name="img1" type="file" size="30" /></p> 
<p><input name="submit" type="submit" value="Upolad File" /></p> 

<form action="do_upload.php" method="post" enctype="multipart/form-data"> 
<p><strong>File to upload</strong></p> 
<p><input name="img1" type="file" size="30" /></p> 
<p><input name="submit" type="submit" value="Upolad File" /></p> 
</form> 

if ($_FILES[img1] != "" { 

if (isset($_FILES['img1'])) { 
+0

我真是無聊,謝謝! – Jacksta 2010-04-16 02:49:12

+0

好吧,現在我的回答看起來很愚蠢。 :)那個密切的標籤一直在盯着我,我從來沒有注意到它。 – awgy 2010-04-16 02:49:47

+0

現在我得到了第2行do_upload.php文件:( – Jacksta 2010-04-16 02:50:10

3

如果你沒有收到所有的錯誤,下面的行添加到您的腳本的頂部,以確保錯誤報告是否設置正確:

error_reporting(E_ALL); 
ini_set('display_errors', 'On'); 
+0

如果這是一個錯誤。他沒有得到**任何東西**,因爲他的'標籤完全沒有用。 – 2010-04-16 02:48:55