スレッド表示 | フラット表示〕 全トピック 920 件中 657 番目 次≫ ≪前

ファイル・アップロードがうまくいかない

created: 2004-03-12 15:19 | modified: 2004-03-19 04:27 | reply: 1

[1397] ファイル・アップロードがうまくいかない

user: tokko | created: 2004-03-12 15:19
PHP初心者です、よろしくご教授お願いいたします。

ファイル・アップロードがうまくいかなくて困っています。
サーチエンジン等で色々探しましたが、うまく見つかりませんでした。

1)環境

OS: Vine Linux V2.6r4-0vl1
Apache: apache-1.3.27-0vl3(OS付属のrpm)
PHP: php-4.2.3-multibyte.tar.gzをphp-4.2.3-multibyte.patchを当てた後でコンパイル
PHPのconfigure
./configure --with-mysql=/usr --enable-track-vars --with-apxs=/usr/sbin/apxs --enable-mbstring --enable-mbregex --with-gettext --enable-mbstr-enc-trans --with-config-file-path=/etc --with-gd --with-zlib

2)アップロードの方法

<form method="post" action="up.php" enctype="multipart/form-data">
<input type="file" name="upload_file">
<input type="submit" value=" 送信 ">

3)現象

/etc/php.iniは「file_uploads = On」「upload_tmp_dir = /tmp/php」とし、/tmp/phpの「owner.group」は
「apache.apache」にしてあります(「ps」コマンドで確認すると、httpdは「apache.apache」)。
「session.save_path = /tmp/php」にしてあり、セッション情報はきちんと/tmp/phpに入りますが、アップロードしようとするファイルは/tmp/phpに入りません。
当然、php.iniを変更した後は、httpdを再起動しています。

actionで起動される「up.php」で、$_FILES ['upload_file']['name']を出力させると、アップロードしようとするファイル名だけが入ります。
日本語ファイル名でもきちんと表示されます。

気になるのは、php.iniで変更した部分はきちんと「phpinfo()」に反映されているのに、「file_uploads = On」は「phpinfo()」だと「file_uploads = 1」となってしまいます。
他にも「allow_url_fopen = On」が「allow_url_fopen = 1」に、「;always_populate_raw_post_data = On」が「always_populate_raw_post_data = 0」になってしまいます。
ちなみに、「file_uploads = Off」にすると、「phpinfo()」だと「file_uploads = no value」となってしまいます。
configureオプションを変えたりして、何度もコンパイルしてみましたが、やはりuploadされません。
パッチを当てずにコンパイルをしてみましたが、結果は変わりません。

また、「php-4.2.3-multibyte」をコンパイルしたのに、「phpinfo()」では「PHP Version 4.2.4-dev」
と出ます。
パッチを当てていても当てなくても同じです。
reply: 1424 返信 編集 削除

[1424] 一時ファイル

user: ごいんきょ。 ホームページ | created: 2004-03-19 04:27
アップローダみたいなものをつくったことがないので、よくわかりませんが。

たぶん、upload_tmp_dirという名前からして、tmp_dirは一時ファイルを格納するディレクトリだと思います

送信したファイルがそのディレクトリに保存されるのだとしたら、そのままだと(たぶん)スクリプトの実行が完了した時点で削除されるはずです

なので、アップされたファイルは、改めて保存しなおす必要があるみたいです

参考→http://www.zend.co.jp/products/studio/ZendInformationCenter/php_manual/php_function_refrence/features.file-upload.html

アップロードされたファイルの移動には、move_uploaded_file関数を使います

参考→http://php.s3.to/man/function.move-uploaded-file.html


ちなみに、php.iniで入力された値とphpinfo()で表示される値の違いは、意味が食い違うのでなければ、心配する必要はありません
Parent: 1397  返信 編集 削除
スレッド表示 | フラット表示〕 全トピック 920 件中 657 番目 次≫ ≪前
ページの一番上へ
Googleグックマークに登録 Yahooグックマークに登録 livedoorクリップに登録 @niftyクリップに登録 はてなブックマークに登録 deliciousに登録 Buzzurlに登録 FC2ブックマークに登録
最近更新された掲示板トピックス
管理人Blog
Yahoo Search

最近更新したNote
PHPマニュアル
今日のブックマーク
PHPマニュアル関数検索
関数名を入力し検索ボタンをクリック↑