前提・実現したいこと
ここに質問の内容を詳しく書いてください。
PHPでファイルをアップロードするプログラムを作っています。
ファイルアップロード中に、ボタンがロックされ「現在アップロード中です」のような画面を表示するには
どうすればよいでしょうか?
発生している問題・エラーメッセージ
エラーメッセージ
該当のソースコード
php
1<form enctype="multipart/form-data" method="post"> 2 <input type="hidden" name="MAX_FILE_SIZE" value="1000000"> 3 <input name="file" type="file"> 4 <input type="submit" name="_upload" value="アップロード"> 5 </form> 6 7 <?php 8 //[アップロード]ボタンの押下確認 9 if (isset($_POST['_upload'])) { 10 //ファイルをテンポラリから保存場所へ移動(但し本来は渡されたファイル名をそのまま使うのは危険) 11 $filename = './'.$_FILES['file']['name']; 12 if (move_uploaded_file($_FILES['file']['tmp_name'], $filename)) { 13 echo 'アップロード完了しました'; 14 echo $_FILES['file']['name'].'[ファイル名]'; 15 echo $_FILES['file']['size'].'[サイズ]'; 16 } else { 17 //エラー処理 18 } 19 } 20 ?>
試したこと
まずアップデートボタンを押下した際にボタンが押せなくなるようなコードを探しましたがうまくいきませんでした
php
1<!DOCTYPE html> 2<html lang="en" dir="ltr"> 3 <head> 4 <meta charset="utf-8"> 5 <title></title> 6 <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> 7<script src="jquery.blockUI.js"></script> 8 9 10 11 </head> 12 <body> 13 <script> 14$(function(){ 15 $('#foo').click(function(){ 16 $.blockUI(); 17 $.ajax({ 18 url: "foo.cgi", 19 }).done(function() { 20 // ... 21 }).always(function() { 22 $.unblockUI(); 23 }); 24 }); 25}); 26</script> 27 28 29 <h1>アップロード処理のサンプル</h1> 30 <form enctype="multipart/form-data" id="form01"method="post"> 31 <input type="hidden" name="MAX_FILE_SIZE" value="1000000"> 32 <input name="file" type="file"> 33 <button type="submit" name="_upload" id="foo" 34 value="アップロード"></button> 35 36 37 </form> 38 39 40 <?php 41 //[アップロード]ボタンの押下確認 42 if (isset($_POST['_upload'])) { 43 //ファイルをテンポラリから保存場所へ移動(但し本来は渡されたファイル名をそのまま使うのは危険) 44 $filename = './'.$_FILES['file']['name']; 45 if (move_uploaded_file($_FILES['file']['tmp_name'], $filename)) { 46 echo 'アップロード完了しました'; 47 echo $_FILES['file']['name'].'[ファイルのなまえ]'; 48 echo $_FILES['file']['size'].'[サイズの大きさ]'; 49 } else { 50 //エラー処理 51 } 52 } 53 ?> 54 55 </body> 56</html> 57 58コード 59現在こんな感じです。もちろん動きませんが
補足情報(FW/ツールのバージョンなど)
回答2件
あなたの回答
tips
プレビュー