
基本的な質問かもしれず申し訳ないのですが、どうしてもできないので質問します。
以下のコードでファイルコピーを試みているのですがうまくいきません。
$store_file = "//***.**.**.**/data/" . $_FILES['upfile']['name'];
if(!copy($_FILES['uplfile']['tmp_name'],$store_file)) {
print "失敗<br>";
}
試しにcopy($_FILES['uplfile']['tmp_name'],$store_file)) の部分の$store_fileに直接'//***.**.**.**/data/copyfile.xls'のようにパスを入力するとうまくいくのですが、それを$store_fileのように変数にするとうまくいきません。//を\\\\\とかに変えたりしてみたのですがだめでした。
どなたか教えてください。宜しくお願い致します。
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
> $store_file をprintで実際に書き出してみると
> //***.**.**.***/data/\phpdata/copyfile.xlsとなり問題なそうでした。
これは、
> 直接'//***.**.**.**/data/copyfile.xls'のようにパスを入力する
と異なるパスになっていますが、それれが影響しているということはないでしょうか?
> また、PHPはwarrningのようなエラーは特に出力しません。
PHPのエラー出力が抑制されているということはないでしょうか?
error_reporting(E_ALL);
を挿入してエラーが出るようにならないでしょうか。
あるいはWEBサーバーのエラーログを見るか。
とかですかね。
この回答への補足
//***.**.**.***/data/\phpdata/copyfile.xls
//***.**.**.**/data/copyfile.xls
の違いは私のタイプミスでした。すみません。
error_reporting(E_ALL);
を挿入してみましたが、NOTICEはでますがWARRNINGはでませんでした。
たまたま以下のコードを他サイトでみつけて試してみたところ動きました。とりあえず目的のことができそうなのでこれでいいのかなと思っています。
// ファイルを保存するディレクトリ
$save_dir = "//***.**.**.**/data/";
$enc_disp = "EUC-JP"; // ブラウザ表示文字コード
$enc_file = "SJIS"; // 保存ファイル名文字コード
// ファイルがアップロードされたものなら処理をする
if (is_uploaded_file(@$_FILES["upfile"]["tmp_name"])) {
// ファイル名の文字コードを変換する
$file_name = $save_dir.$_FILES["upfile"]["name"];
$det_enc = mb_detect_encoding($string, $enc_disp . ", " . $enc_file);
if ($det_enc and $det_enc != $enc_file) {
$file_name = mb_convert_encoding($file_name, $enc_file, $det_enc);
}
// テンポラリファイルを保存ディレクトリにコピー
copy($_FILES["upfile"]["tmp_name"], $file_name);
echo "<p>ファイルアップロード完了";
echo "<p>ファイル名:".$_FILES["upfile"]["name"];
}
?>
<form enctype="multipart/form-data"
action="<?php echo $_SERVER["PHP_SELF"]?>" method="post">
<input type="file" name="upfile">
<input type="submit" value="アップロードする">
</form>
No.1
- 回答日時:
$store_file = "//***.**.**.**/data/" . $_FILES['upfile']['name'];
とした場合、$store_file は実際にどのような内容になっているのか確認しましたか?
また、copyの際にphpはどんなエラーを出力しました?
ちなみに、なぜ一時ファイルをcopyしようとされているのかわかりませんが、セキュリティ上、move_uploaded_fileを使うべきです。
少なくとも、copyの前にis_uploaded_fileでチェックしましょう。
※質問に書いてないだけで実際のコードには書いてあるかもしれませんけど。
参考URL:http://cai.cs.shinshu-u.ac.jp/sugsi/Lecture/php/ …
この回答への補足
早々に回答を頂きながら返答が遅くなりすみません。
転送メールで本回答をみたため、PC操作できる環境におりません。
大変申し訳ないのですが、明後日に確認できますので、また追って返答いたします。
連絡がおそくなりすみません。
$store_file をprintで実際に書き出してみると
//***.**.**.***/data/\phpdata/copyfile.xlsとなり問題なそうでした。
また、PHPはwarrningのようなエラーは特に出力しません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) セレクトボックスで選択された値をコントローラーで使用したい 2 2022/07/26 16:41
- Visual Basic(VBA) vbaのエラー対応(実行時エラー7:メモリが不足しています) 4 2023/04/24 00:20
- PHP PHPで画像の渡しが上手く行きません。 1 2023/02/02 09:39
- CGI htmlからパラメータで、cgiに渡したい。 1 2023/02/06 16:15
- PHP 配列について教えて下さい。 2 2023/03/06 10:29
- Visual Basic(VBA) 集めたシートのシート名を変更したい。 下記のコードでサブフォルダにあるファイルのSheet3を集めて 6 2022/08/23 10:38
- PHP $filePath = './user_img/' . $file['name'];? 1 2022/12/10 07:29
- PHP PHPでCookieを使った訪問回数について 1 2023/05/28 14:10
- JavaScript clear機能を失わずにファイルアップロード機能を作成したい 3 2023/06/10 16:12
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBA で、スペースを含むファイ...
-
PDO学び始めました
-
openCVのトラックバーについて
-
header()関数について
-
Flaskでサーバー立ち上げに関して
-
PHPでURLにジャンプするには?
-
<input type="hidden" >で配列...
-
画面が更新されてもチェックボ...
-
プログラミング言語で、使える...
-
配列をhiddenで
-
テキストボックスに初期値を入れる
-
phpで、フォームのラジオボタン...
-
変数が表示されない。
-
PHP・MYSQLで複数のチェックボ...
-
PHPでフォームに表示させたCSV...
-
phpファイルの命令実行順番につ...
-
ラジオボタンをsessionで使いたい
-
テキストボックスとsubmitボタ...
-
フォームでのリセットを使う方法
-
セレクトしたときに全て初期状...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBA で、スペースを含むファイ...
-
Flaskでサーバー立ち上げに関して
-
POSTの項目に追加
-
PHPでParse errorについて
-
ファイル名を変更してアップロ...
-
header()関数について
-
sqlite文字列を格納、出力
-
phpで変数を使ってcopyできない
-
初心者です。入力フォームのp...
-
重複を防ぐ記述について教えて...
-
scanfでの読み込み文字数制限
-
$_SESSIONに渡した後はそのまま...
-
PDO学び始めました
-
PHP MySql 画像を取得
-
php、sqlite3にデーター追加で...
-
if function PHP
-
複数条件での検索について教え...
-
$_REQUESTの意味を教えて下さい
-
Emacs Lisp: 関数に引数が渡せ...
-
php+mysqlでの重複チェックにつ...
おすすめ情報