2014-10-05 79 views
0

這裏是一個PHP文件名爲upload_file.php:HTML表單的動作和的onclick

<?php 
    if ($_FILES["file"]["error"] > 0) { 
    echo "Return Code: " . $_FILES["file"]["error"] . "<br>"; 
    } else { 
    echo "Upload: " . $_FILES["file"]["name"] . "<br>"; 
    echo "Type: " . $_FILES["file"]["type"] . "<br>"; 
    echo "Size: " . ($_FILES["file"]["size"]/1024) . " kB<br>"; 
    echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br>"; 
    if (file_exists("upload/" . $_FILES["file"]["name"])) { 
     echo $_FILES["file"]["name"] . " already exists. "; 
    } else { 
     move_uploaded_file($_FILES["file"]["tmp_name"], 
     "upload/" . $_FILES["file"]["name"]); 
     echo "Stored in: " . "upload/" . $_FILES["file"]["name"]; 
    } 
    } 
?> 

當我打電話與HTML表單上面的文件:

<form action="upload_file.php" method="post" enctype="multipart/form-data"> 
<label for="file">Filename:</label> 
<input type="file" name="file" id="file"><br> 
<input type="submit" name="submit" value="Submit"> 
</form> 

一切都很正常,我設法將選定的文件上載到/ upload本地服務器文件夾中。

我的問題:如果我想使用onclick,上述表單的等價物是什麼?即下面的代碼

<a href="#x" class="overlay" id="browse_file"></a> 
     <div class="popup"> 
      <h2>Browse for your file</h2> 
      <input type="file" name="file" id="file"><br> 
      <input type="button" value="file" onclick= "location.href = 'upload_file.php'"> 
     </div> 

定義的彈出窗口(由anothel模式對話框controled - 這就是爲什麼我不希望使用的形式),應該按順序完成通過選擇$文件名用onclick調用upload_file.php時_FILES?

謝謝各位朋友。

+0

您的問題並不清楚,您需要相同的表單,但您希望表單在您選擇文件時自動提交? – ClemSndr 2014-10-05 22:27:14

+0

在我提供的最後一段代碼中,我們應該添加什麼來使其表現得像以前的形式?我們如何通過onclick將用戶選擇的文件傳遞給$ _FILES? – pebox11 2014-10-05 22:32:12

+0

這實際上並不是正確的做法。你不能使用location.href傳遞一個文件(這是一個post請求),你必須使用ajax post請求,如果你真的想要重定向,你可以在上傳結束時啓動它 – ClemSndr 2014-10-05 22:34:27

回答

0

如果你想使用帶窗體的onclick函數,你應該閱讀關於AJAX和javascript。在jQuery中有非常簡單的ajax請求的實現。也可以通過使用jquery輕鬆地從輸入中獲取所選文件。

+0

我被執行限制使用我發佈的代碼傳遞給$ _FILES。我可以在這段代碼中使用jQuery嗎?說,也許一旦點擊,執行一個jQuery(放置在我的HTML調用PHP的地方)? – pebox11 2014-10-05 22:43:01

+0

爲什麼你不能使用表單?你不能使用提交輸入,表單標籤或什麼?你的表單中的問題在哪裏?我不認爲你可以發送文件沒有窗體,當你不能也使用JavaScript。 – daredesm 2014-10-05 22:52:05

+0

如果您在模態中告訴我們更多關於「表單」的信息,也許您不必使用ajax。 – daredesm 2014-10-05 22:54:08