質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
CSV

CSV(Comma-Separated Values)はコンマで区切られた明白なテキスト値のリストです。もしくは、そのフォーマットでひとつ以上のリストを含むファイルを指します。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

2回答

3866閲覧

move_uploaded_fileでファイルがアップロードできません

marionetter

総合スコア24

CSV

CSV(Comma-Separated Values)はコンマで区切られた明白なテキスト値のリストです。もしくは、そのフォーマットでひとつ以上のリストを含むファイルを指します。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2019/02/19 09:15

いつもお世話になっております。

下記のコードで実施していますがファイルのアップロードができずにいます。

HTML

1<form action="php.php" method=POST enctype="multipart/form-data"> 2CSVファイルアップロード<br> 3<input type=hidden name=mode value="upload"> 4<input type=file name="file-date" size=60000>

PHP

1$upload = "/home/sites/www.jwell.com/pub/data/test.csv"; 2 3 if(move_uploaded_file("/var/lib/php/session".$_FILES['file-date']['tmp_name'], $uplpad)){ 4 echo 'アップロード完了'; 5 }else{ 6 echo 'アップロード失敗'; 7 } 8 die(print_r($_FILES)); 9

出力結果

アップロード失敗Array ( [file-date] => Array ( [name] => test.csv [type] => application/vnd.ms-excel [tmp_name] => /tmp/phpmTJ3tF [error] => 0 [size] => 7344 ) )

move_uploaded_fileのファイルの場所はあっていると思います(このコード以外はエラーになっていました)

権限等の問題でしょうか、プログラムの書き方の問題でしょうか?

アドバイスいただけましたら幸いです。

返事は遅くなります。よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

papinianus

2019/02/19 09:25 編集

move_uploaded_fileの第2引数の$uplpadのタイプミスは対処済ですか?
cerfweb

2019/02/19 09:23

HTMLコードが不完全(値がダブルクォーテーションでくくられていない、タグが閉じられていないなど)ですが、単なる写し間違いですか?
m.ts10806

2019/02/19 10:35

コピペってこういうときに使うものですよね。
m.ts10806

2019/02/19 10:36

環境情報を追記願います。 サーバー、phpバージョンなど
m.ts10806

2019/02/19 10:37

あと下記、何がしたいのでしょうか。dieするなら失敗したときだけのようにすべきでは。 die(print_r($_FILES));
guest

回答2

0

ベストアンサー

php

1$upload = "/home/sites/www.jwell.com/pub/data/test.csv"; 2 3 if(move_uploaded_file("/var/lib/php/session".$_FILES['file-date']['tmp_name'], $uplpad)){

move_uploaded_file の第2パラメータが $uplpad になってるからではなくて?

まあこれ以外であれば、/home/sites/www.jwell.com/pub/data に対して Webサーバーの実行ユーザーが書き込み権限持ってないとか、そもそもそんなパスが存在しないとかいうパターンもありそうですが。

投稿2019/02/19 10:34

編集2019/02/19 10:35
tacsheaven

総合スコア13703

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

marionetter

2019/02/20 02:31

ご回答いただきましてありがとうございます。 タイプミスは、変数変更してたので、このページのみの間違いです。 申し訳ございません。 権限の問題になりそうです。 調査してみます。 アドバイスいただきましてありがとうございます。
guest

0

PHP: move_uploaded_file - Manual
ファイルの移動に失敗したってことで、
既に同名ファイルがあれば失敗したりしませんかね。
いつも同じファイル名に上書きしたいのかもしれないけど、
同時アクセスされたらどうするんだろうって素朴な疑問も。

tacsheavenさんの回答の指摘がずばりだと思います。

$upload = "/home/sites/www.jwell.com/pub/data/test.csv"; if(move_uploaded_file($_FILES['file-date']['tmp_name'], $upload)){ // -----------------------------------------------------^^^^^^^

変数名も間違ってたので直してみた。

投稿2019/02/19 10:16

編集2019/02/19 11:01
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

marionetter

2019/02/20 02:34

ご回答いただきましてありがとうございました。 タイプミスはここだけのミスです。。。申し訳ございません。 移動先ファイルの再確認と上書き用に作ったファイルがあるので一度削除してみます。 アドバイスいただきましてありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問