2012-01-06 7 views
0

私は次のような構造を持つページがあります。私も同じで活動を維持したい3に行く前に、私は2を完了したいと思いますPHPでファイルをアップロードした後にアクションを実行しますか?

1. Text 

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

3. PHP code to handle the files 

を(SUBMITヒットするユーザーを待ちます)ページ...今すぐユーザーがSUBMITを押すと、彼/彼女は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

+1

Javascriptを追加する必要がある場合は、タグにJavascriptを追加するとよいでしょう。 – Michael

+0

あなたの質問を明確にしてください。 PHPの仕組みは、アップロードが完了するとスクリプトが実行されるだけなので、 "スクリプトを実行する前にアップロードを完了したい"という質問は無関係です。 – dtech

答えて

1

あなたが唯一のPHPを使用してこれを達成することはできません。プロセスを同じページ(リフレッシュなし)にしたい場合は、AJAX(JavaScript)を使用する必要があります。 jQuery ajaxのセクションを読んでみてください。

ファイルをアップロードするときは、純粋なajax(xmlhttprequestオブジェクトはファイルアップロードをサポートしていません)を使用してファイルをアップロードすることはできません。そうするためにプラグインを探したり、隠しIFRAMEあなたのフォームはターゲットになるでしょう。

+0

ありがとうFreeman! – SB2055

1

1)フォームのアクションで...

2を同じファイルの名前を与える)は、ボタンのLITSを提出する名前を付けて名前が=同じページ)

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