Flash コンポーネントを介してサーバーにファイルをアップロードするスクリプトを使用しています。まれに、Firefox 経由で画像をアップロードしようとすると、IO エラー #2038 というエラーが表示されることがあります。ネットで検索すると、なぜそれが実際に私に起こっているのか理由を見つけることができました. しかし、私の場合の解決策を見つけました。IE6 を開き、そこで同じことを行い (写真は常に問題なくアップロードされます)、Firefox で再試行すると問題はなくなります。誰かが同様の問題を抱えている場合、これが役立つか、このヒントが問題の原因を発見するのに役立つ可能性があります:)
5 に答える
私が認めたいよりもはるかに時間が経った後、ここに解決策があります。php.ini最大のファイルを処理するのに十分な大きさになるように、次の変数を変更します。
; Maximum size of POST data that PHP will accept.
post_max_size = 32M
; Maximum allowed size for uploaded files.
upload_max_filesize = 32M
; Whether to allow HTTP file uploads. (this is on by default)
file_uploads = On
ファイルは POST データとして送信されるため、最初の両方の変数を設定する必要があります。そうしないと、エラーが発生しますが、エラーの内容はわかりませんIO error #2038。
ASP.Net MVC を使用してもこのエラーが発生しましたが、ハンドラーが移動する Web 構成セクションで、ハンドラーの名前空間が間違っている/スペルが間違っていることを発見しました。HTH...
問題を解決しました。
私のオフィスではプロキシを使用しており、設定を に変更する必要がありますNo Proxy。
または、プロキシを使用しない場合は、次のように変更してみてくださいphp.ini:
Hostname:Port localhost:0
に:
Hostname:Port localhost:80
オプション名を引用符で囲んでいない場合は、それを試してください。IE では、オプション名を引用すると問題が解決する場合があります。ただし、サンプルコードを投稿していただけると助かります。
また、アップロード コンポーネントによって使用されているサーバーへのパスが正しいことを確認してください。パスが相対パスの場合は、完全修飾してみてください。IE は、他のブラウザーでは実行できない相対パスを使用して「魔法」を実行できます。また、あるブラウザーから別のブラウザーにコードを試してみると、調整できる場合があります。
また、パーミッションである可能性があります...そしてIEを最初にそこに移動させると、他のブラウザーが「正しく」動作するようにパーミッションを操作できます。