今日始めたばかりの初心者です。
PHPだとCGIに比べ、ファイルのアップロードとか画像の処理が簡単に行えそうなのでチャレンジしてみたのですが、いきなりつまづいてしまいました。
とりあえずファイルをアップロードしてみようと思い、下のようなサンプルをアップロードしてみたのですが、さっぱり動きません。
適当なjpgファイルをアップロードすれば、スクリプトのあるディレクトリに”aaa.jpg”という名前で保存すると思うのですが…。
最後の”var_dump($_FILES);”という命令で、アップロードされたファイルの内容を表示させてるはずなのですが、ファイル送信前も後も”array(0) {}”としか表示されません。
PHPのバージョンは4.34です。
どなたかご教授お願いします。
************************
<form enctype="multipart/form-data" method="post">
Upload File:<input name="userfile" type="file">
<input type="submit" value="Send File">
</form>
<pre>
<?php
if (!empty($_FILES)) {
move_uploaded_file($_FILES['userfile']['tmp_name'],'aaa.jpg');
}
var_dump($_FILES);
?>
</pre>
************************
No.2ベストアンサー
- 回答日時:
$_FILESが空だという事はつまりファイル自体が送られていませんね。
試しに同じコードを自分の使ってる開発サーバーにアップしてテストしてみましたが、こちらの環境ではちゃんと$_FILESに値が入っていました。・Send fileボタンを押すと画面は更新されるわけですよね?
・プログラム上半分のHTML部分は間違いないですか?余計なスペースなど入ってないですよね。
少なくともスクリプトの問題ではないですね。PHPの設定はどうなっているんでしょうか?いじれるんですか?例えばfile_uploads、post_max_sizeやupload_max_filesizeが0になってるなんて事はありませんか?これは
<? phpinfo(); ?>
という1行だけのスクリプトをアップロードして表示させて、挙げた項目の値を確認して下さい。これが0になっている場合は、php.iniで設定を変更してあげないといけません。
わざわざ実際に試して頂いて、とても感謝しております。励みになります。ありがとうございます。
>Send fileボタンを押すと画面は更新されるわけですよね?
はい。送信後、ブラウザの「中止」ボタンが一瞬だけアクティブになります。
>プログラム上半分のHTML部分は間違いないですか?余計なスペースなど入ってないですよね。
下のようになっていますが、大丈夫だと思います。
************************
<HTML>
<HEAD>
<TITLE>PHPサンプル</TITLE>
<META http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
</HEAD>
<BODY bgcolor="#FFFFFF">
<CENTER>
<form enctype="multipart/form-data" method="post">
Upload File:<input name="userfile" type="file">
<input type="submit" value="Send File">
</form>
<pre>
************************
あと、php.iniの設定は、全て問題ありませんでした。
file_uploads=on
post_max_size=8M
upload_max_filesize=2M
※試しに送信してたファイルは30kb程度です
upload_tmp_dirが「no value」になってるのが少し気になりましたが、この状態だとスクリプトのあるディレクトリが指定されるんですよね?
問題は解決してませんが、php.iniを閲覧する方法等、すごく参考になりました。ありがとうございました。
またしばらく格闘してみます!
No.4
- 回答日時:
謎ですねぇ。
>upload_tmp_dirが「no value」になってるのが少し気になりましたが、この状態だとスクリプトのあるディレクトリが指定されるんですよね?
いいえ、省略された場合はそのOSが認識しているテンポラリディレクトリを使います。不安であれば、これを指定してみたらどうでしょうか?
ちなみに他のパソコンやブラウザでやってもだめですか?可能であれば知人等にURLを教えてテストしてもらったらどうでしょうか。
回答ありがとうございます。
>いいえ、省略された場合はそのOSが認識しているテンポラリディレクトリを使います。不安であれば、これを指定してみたらどうでしょうか?
なるほど、参考になります。
試しに下のようなスクリプトでupload_tmp_dirを設定しようとしてみたのですが、falseが帰ってきてしまいました。ユーザーには設定できないんだろうと思います(ほとんど手探り&Google頼みで作業してるので、ちょっと自信無いですが^^;
スクリプト*******************
var_dump(ini_set('upload_tmp_dir','/usr/tmp'));
var_dump(ini_get('upload_tmp_dir'));
結果**********************
bool(false)
bool(false)
************************
>ちなみに他のパソコンやブラウザでやってもだめですか?可能であれば知人等にURLを教えてテストしてもらったらどうでしょうか。
会社のMacとWindowsで試してみましたが、どちらも結果は同じでした。今晩、自宅でも試してみようと思います。
なかなか問題は解決しませんが、後々も役立ちそうな知識がいろいろ増えたと思います。ありがとうございました!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
onedrive にexcelファイルをア...
-
ftpでアップロードが出来ない
-
全角ファイル名をアップロード...
-
「クラウドにアップロード」」...
-
ftp_putとftp_fput
-
サーバーに負荷の掛けないファ...
-
youtubeに音声のみのmp4ファイ...
-
サーバーにアップロードしたい
-
ローカル(自分のパソコン上)...
-
PHPにてWebサーバー内データを...
-
アップロードの方法
-
phpでログインの有無によってフ...
-
Dreamweaver ドリームウィーバ...
-
携帯からファイルアップロード...
-
透過PNGが透過されない!!
-
データベースへの持続的接続
-
MySQLのdatetime型の月日0を削...
-
ラッパークラスって何ですか?
-
.phpと.incファイルの違いはな...
-
ファイルの行数取得
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
onedrive にexcelファイルをア...
-
違法アップロードについて
-
「クラウドにアップロード」」...
-
youtubeに音声のみのmp4ファイ...
-
ファイルをGET送信でアップロー...
-
FTPClientで転送結果(OKかFAIL)
-
ftpでアップロードが出来ない
-
php,file_get_contentsの結果が...
-
DUMPした巨大SQLファイルをイン...
-
unlinkでどうしてもファイルが...
-
FTP接続の例外処理
-
PHPでxmlをAPIに送信する方法(P...
-
ファイルのアップロードがどう...
-
BASP21のFTPで日本語ファイル名...
-
one drive のアップロード失敗...
-
SmartyでHTMLソースの変更が反...
-
ファイルアップロードしたもの...
-
$filePath = './user_img/' . $...
-
画面遷移させずに、選択画像フ...
-
movabletypeでPDFファイルをア...
おすすめ情報