• ベストアンサー

ファイルをアップロードする毎にサイズを取得することは可能でしょうか?

PHPでファイルアップロードする場合に、 アップロード前に選択したファイルサイズを Javascriptで取得したいのですが可能でしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • nda23
  • ベストアンサー率54% (777/1415)
回答No.1

FileSystemObjectを使えば可能ですが、ActiveXObjectを生成するので大抵の場合、ブラウザの保護機能により失敗します。 上記オブジェクトの生成が許可された環境なら、以下のScriptを試してみてください。 //ファイルサイズ(実バイト数)を返すメソッド function getFileSize(path) {   var fso = new ActiveXObject("Scripting.FileSystemObject");   var f = fso.GetFile(path);   return f.Size; }

php4
質問者

お礼

ご回答ありがとうございます。 pathはフォーム値のvalueで取得のようですね。今夜試してみますね。 ActiveXは、MACでも動作できるでしょうか?

その他の回答 (1)

  • HIRSYU
  • ベストアンサー率51% (45/87)
回答No.2

確かMacは無理だったはずです。 Windowsでも、IEだけだったような気がします。(あまり自信ありません) 何を目的で、アップロード前にサイズを知りたいのかにもよりますが、 単に、でかいファイルの、無用なアップロード処理時間を無くしたいってあれば、 hidden要素で、MAX_FILE_SIZEを指定とか可能です。 http://phpspot.net/php/man/php/features.file-upload.html PHP側でも、MAX_FILE_SIZEでアップロードしていないって言うのを取得可能です。 http://jp.php.net/manual/ja/features.file-upload.errors.php