2011-02-28 39 views
1

我正在做一些上傳文件的簡單工作。我現在忽略錯誤檢查和例外,只是爲了讓我的上傳工作。我有這樣的HTML表單:爲什麼我的PHP上傳腳本不工作?

<form action='addResult.php' method='post' enctype='multipart/form-data' target='results_iFrame' onsubmit='startUpload();'> 
Entry: <input type='text' id='entry' /> 
Stop: <input type='text' id='stop' /> 
Final: <input type='text' id='final' /> 
Chart: <input type='file' id='chart' /> 
<input type='submit' value='Add' /></form> 

正如你可以看到,它調用「addResult.php」內嵌框架「results_iFrame」內。 Javascript只是用於動畫目的,並告訴我什麼時候完成。 addResult.php中有這個代碼(與處理其它輸入一起):

$upload_dir = "../img/"; 
$chart_loc = $upload_dir.basename($_FILES['chart']['name']); 

move_uploaded_file($_FILES['chart']['tmp_name'], $chart_loc); 

print_r($_FILES); 

它使用的形式「圖表」輸入,並試圖將其上傳。我有print_r()函數來顯示$ _FILES上的一些信息,但數組是空的,從而導致失敗。我可能做錯了什麼?

回答

3

在處理表單時,name=用於引用服務器端項,而不是id=

只需將所有那些id屬性更改爲names s,並且您可以很好地去(希望)。

+0

「只要改變所有這些名稱屬性標識」 - 其他方式,肯定? :) – glomad 2011-02-28 23:23:43

+0

哎呦,再次自相矛盾;) – Blender 2011-02-28 23:25:48

+0

啊,當然 - 總是很簡單。我已經從發送信息轉換爲使用ID而不是名稱的Javascript函數。謝謝! – Turner 2011-02-28 23:36:23

1

你必須給你的輸入元素name屬性或他們不傳遞給你的腳本。 id用於DOM /瀏覽器/客戶端使用。

解決此問題後可能會出現另一個問題,但這是一個很好的第一步。

0

嘗試添加name屬性的輸入值,如下所示:

<input type='file' id='chart' name="myfile"/> 
0

你輸入沒有「name」屬性,只有編號。

0

你需要給你的表單字段名稱屬性

相關問題