2012-01-06 117 views
0

我有以下結構的網頁:使用PHP上傳文件後執行操作?

1. Text 

2. Form with SUBMIT button that allows users to upload files 

3. PHP code to handle the files 

我想完成2(等待用戶點擊提交)纔去3.我也想保持活動上同頁面...現在,如果用戶點擊提交,他/她將被重定向到upload.php腳本。

鑑於我是PHP新手,完成此操作的最簡單方法是什麼?感謝您的時間。下面

代碼:

HTML(我想保持這一切頁):

<html> 
<body> 

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

</body> 
</html> 


<?php 




//$result = $storageClient->putBlob('testcontainer', 'example.txt', 'C:/example.txt'); 
// I'll be uploading each of the three uploaded files here 
// Syntax: putBlob (ContainerName, NameInStorage, FileLocation) 

?> 

腳本:

<?php 
error_reporting(E_ALL); 


for ($i=1; $i<4; $i++) 
    { 
    $file = "file" . $i; 
    if (($_FILES[$file]["size"] < 20000)) 
     { 
     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 />"; 


     $moved = move_uploaded_file($_FILES[$file]["tmp_name"], "C:/inetpub/wwwroot/PHP_Ramp/upload/" . $_FILES[$file]["name"]); 

     if ($moved) { 
      echo "Move: Success <br/>"; 
     } 
     else { 
      echo "Move Failed <br/>"; 
     } 


      echo "Stored in: " . "C:/inetpub/wwwroot/PHP_Ramp/upload/" . $_FILES[$file]["name"]; 
      } 
     } 

    else 
     { 
     echo "Invalid file"; 
     } 

} 
?> 
+2

你可以發佈你到目前爲止試過的代碼,並指出你在哪裏得到錯誤/問題? – Clive 2012-01-06 16:59:51

+1

您可能需要將Javascript添加到您的標籤中,因爲這將需要它。 – Michael 2012-01-06 17:01:28

+0

請澄清你的問題。 PHP工作的方式是腳本只有在上載完成後纔會執行,因此「我想在執行腳本之前完成上載」問題是無關緊要的。 – dtech 2012-01-06 17:01:59

回答

1

你不能做到這一點只用PHP。如果你希望進程在同一頁面(不刷新),你需要使用AJAX,這是JavaScript。嘗試閱讀jQuery ajax部分。

而當您上傳文件時,您無法使用純ajax進行文件上傳(xmlhttprequest對象不支持文件上傳),因此您可能需要尋找插件來執行此操作,或者您可以使用隱藏的IFRAME你的表單將成爲目標。

+0

謝謝Freeman! – SB2055 2012-01-06 19:39:59

1

1)形式的行動給予相同的文件名...

2)給出的名稱提交按鈕雙牀說NAME = 「提交」

3)在同一頁:

if(isset($_POST['submit'])) 
{ 
    write file handliig code here.. 
    all file processing code you were doing in that redirected php script do here.. 
} 
+0

謝謝Rajat :) – SB2055 2012-01-06 19:40:07