phpについて


フォームからファイルをアップしているのですが
アップできるファイルとできないファイルがあります。

例えば a.pdf はアップできるが b.pdf はアップできない。
と言う状態です。

アップできないファイルは
他の処理を書かずに、phpの最初に print $_FILES['hoge']['size']; としても「0」と表示されます。
$_FILES['hoge']['name'] はきちんとファイル名を表示します。

アップできるファイルはきちんとサイズを返してくれますし
保存もできるのでコードが間違っているとは思えないのですが.....

思い当たる原因を教えてください。

よろしくお願いします。

一応
サーバの容量は沢山空いておりアップするスペースがないと言うことはありません。
アップできないファイルは巨大だからということもありません。
ファイルが空と言うことはありません。

回答の条件
  • 1人1回まで
  • 登録:2009/08/03 11:46:08
  • 終了:2009/08/05 01:06:43

ベストアンサー

id:pahoo No.1

pahoo回答回数5960ベストアンサー獲得回数6332009/08/03 11:59:35

ポイント20pt

php.ini の upload_max_filesize は何Mバイトに設定されていますか?

これを超えるサイズのファイルはアップすることが出来ません。

id:worldtravel

ありがとうございます。

この値より少ないファイルでも無理でした。

2009/08/03 12:07:14

その他の回答(4件)

id:pahoo No.1

pahoo回答回数5960ベストアンサー獲得回数6332009/08/03 11:59:35ここでベストアンサー

ポイント20pt

php.ini の upload_max_filesize は何Mバイトに設定されていますか?

これを超えるサイズのファイルはアップすることが出来ません。

id:worldtravel

ありがとうございます。

この値より少ないファイルでも無理でした。

2009/08/03 12:07:14
id:ymlab No.2

ymlab回答回数506ベストアンサー獲得回数332009/08/03 12:31:41

ポイント20pt

サーバにApacheをお使いの場合、Apacheの方の設定も検討してみましたか?

おそらくデフォルトでは2MB, 20MBに設定されていたような覚えがあります。

[私もここでつまずきました。]

http://se-suganuma.blogspot.com/2009/02/apachephpini.html

http://it.cardinals-fan.com/archives/21

id:worldtravel

ありがとうございます。

現在再確認しています。

2009/08/03 13:08:25
id:y-kawaz No.3

y-kawaz回答回数1420ベストアンサー獲得回数2252009/08/03 13:21:14

ポイント20pt

アップロードファイルのサイズ制限に問題がないと仮定します。

そういった中でも僕も昔同じようなことを経験したことがあります。

たまたまファイルのバイナリ中に、ウィルスチェックパターンに引っかかっているバイト列があり、それが原因でファイヤウォール等により送信中に切断されてしまうという現象に出会ったことがあります。

その場合は回避策としてファイアウォールの設定を確認するか、もしくはzip圧縮し直すなどとして全く別のバイナリにすることで回避が出来る可能性もあります。

id:worldtravel

ありがとうございます。

2009/08/03 15:43:53
id:organic19 No.4

organic19回答回数6ベストアンサー獲得回数12009/08/03 23:00:35

ポイント20pt

まず、基本的なことですが、確認する手順として、

apacheのphp.iniの下記設定

・upload_max_filesize

・post_max_size

・memory_limit

HTML(input typeタグ)の MAX_FILE_SIZEの設定

value値は設定されていますか?

name値とpost値は同じですか?

その他

スクリプトを見ないとわかりませんが、スクリプトがおかしいとか。

ファイヤーフォール関連、そもそもファイルが壊れてる等。

id:worldtravel

ありがとうございます。

MAX_FILE_SIZE は設定していません。

ファイヤーフォール関連はわかりません。

ファイルはpdfとして開けるファイルです。

2009/08/04 14:09:24
id:asahiru No.5

asahiru回答回数101ベストアンサー獲得回数02009/08/04 08:11:17

ポイント20pt

>アップできるファイルはきちんとサイズを返してくれますし

>保存もできるのでコードが間違っているとは思えないのですが.....

>print $_FILES['hoge']['size']; としても「0」と表示されます。

たぶん、コードが間違っています。

print $_FILES['hoge']['error'];

で確認してみてはどうでしょうか?

id:worldtravel

ありがとうございます。

「4」でした。

2009/08/04 14:01:07
  • id:pahoo
    > この値より少ないファイルでも無理でした。

    php.ini の post_max_size も確認してください。
    Webサーバは何を御利用ですか? Apacheでしたら、httpd.conf の LimitRequestBody がアップロードサイズ制限になっています。
  • id:worldtravel
    皆様ありがとうございます。

    いま設定を再確認しております。
    しばらくお待ちください。
  • id:worldtravel
    最初の設定はこちらでした。
    この時点で2.5Mのファイルのアップができません。

    memory_limit : 128M
    post_max_size : 8M
    upload_max_filesize : 5M

    php.ini で一応上限を変えましたが動作は変わりませんでした。

    upload_max_filesize = 512M
    post_max_size = 512M
    memory_limit = 512M

  • id:worldtravel
    皆様ありがとうございました。

    print $_FILES['hoge']['error'];
    を、phpの一番最初に書いたら「1」と表示されました。

    php.ini の upload_max_filesize ディレクティブの値を超えている。に該当します。

    また、php.ini は上記のように書いて設置しましたが効果を有効にして頂けないようです。

    php.ini が無理なら。と、php内に ini_set() で書きましたが、これも無理なようです。


    そこでご相談なのですが、
    こういったサーバでは、もうどうしようもないのでしょうか。
    ないのでしょうね....

    よろしくお願いします。
  • id:pahoo
    PDFファイルをクライアント側で圧縮するか分割するかして、サーバ側で解凍または結合したらいかがでしょう。
  • id:worldtravel
    ありがとうございます。
    さすがにそこまでは.....

    今のところは、これだけではなく異常に遅いという問題もあったので、
    今回はサーバの移転を勧めました。

    ありがとうございました。

この質問への反応(ブックマークコメント)

トラックバック

  • LAMP環境構築メモ 最近友人とサービスを立ち上げようとしていて、 そのための環境構築のメモ。 要件としては、 ・フォームでの投稿 ・pdf, txt, 画像などのアップロード/ダウンロード とい
「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません