• ベストアンサー

ファイルのコピー

ファイルのアップロードプログラムを作成しています。 HTML側で<input type="file" name="UserFile"> とし、アップロードボタンを押すとphp側で値を受け取るようなプログラムにしています。 値はうまく渡っているのですが、コピーができません。 コピーするPHPは以下のようなプログラムです。 $file = tempnam("/tmp","upload_"); if (copy($all_data['UserFile'],$file)) { print "ファイルコピー成功。 $all_data['UserFile'] -> $file<BR>\n"; } else { print "ファイルコピー失敗。 $all_data['UserFile'] -> $file<BR>\n"; } エラー内容は Warning: Unable to open 'percent.txt' for reading: No such file or directory となってます。 $all_data['UserFile']にはpercent.txtです。 どなたか、お分かりになる方がいましたら、 ご教授お願いいたします。

  • PHP
  • 回答数2
  • ありがとう数2

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

アップロードってことは クライアントからサーバーへのcopyだよね。 URL指定すれば、できなくはないはずだけど、 copy関数ではあまりやらないかも。 ↓アップロードは参考url見てくださいな。

参考URL:
http://php.s3.to/man/features.file-upload.html
aiurai54
質問者

お礼

ありがとうございます。 参考にさせていただきます。

その他の回答 (1)

  • Dpop
  • ベストアンサー率51% (279/544)
回答No.1

PHP で、ファイルアップロードをやった事が無いので、ヒント位しか書けませんが。。。 > Unable to open 'percent.txt' for reading: No such file or directory の部分ですが、'percent.txt'なんてファイル無いよ! って言っていますよね。 'percent.txt'が入っているパスは正しく指定して、 copyコマンドに引き渡しているのでしょう?

aiurai54
質問者

お礼

ありがとうございます。

aiurai54
質問者

補足

参照ボタンから取得したパスなので、ないことはないと思うのですが。。。

関連するQ&A

  • PHP4 LINUXサーバー

    「PHP4でカンタンWebDB構築ガイド」を見て、ファイルのアップロードのプログラムを書いてみましたが、参照..→送信の後に表示される筈のuserfile,user_file_name,user_file_size,user_file_typeの情報が表示されません。 また、このサンプルソフトでは、サーバーにアップロードされた筈のファイルが、具体的に何処のフォルダにアップロードされたのか分かりません。何処かデフォルトで保存される場所でもあるのでしょうか? <FORM ENCTYPE="multipart/form-data" ACTION="upload.php" METHOD=POST> <INPUT TYPE ="hidden" name="MAX_FILE_SIZE" value="1000"> <INPUT NAME="userfile" TYPE="file"> <INPUT TYPE="submit" VALUE="送信"> </FORM> <?php print "\$userfile = ". $userfile . "<BR>"; print "\$userfile_name = ". $userfile_name . "<BR>"; print "\$userfile_size = ". $userfile_size . "<BR>"; print "\$userfilei_type = ". $userfile_type . "<BR>"; ?>

    • ベストアンサー
    • PHP
  • アップロードファイル名の文字化け

    いつもお世話になっております。 アップロードしたファイルから $_FILES['userfile']['name'];で、アップしたファイル名を取得しようとするときにファイル名に 特定(後半1バイトが'5C')の漢字を含むとPHPが、'\'と誤認して該当の文字から前を消して表示してきます。 例えば、「内部構造.txt」は、「造.txt」に化けます。move_uploaded_file関数で、アップしたファイルをどこかに保存しようにも、ファイル名が正しく指定できません。 どなたか、対策方法をご教授頂けませんでしょうか? よろしくお願いいたします。 <? mb_internal_encoding("EUC"); echo "userfile_name is ".$_FILES['userfile']['name']; echo "<br>"; echo "userfile_type is ".$_FILES['userfile']['type']; echo "<br>"; echo "MAX_FILE_SIZE is ".$_POST["MAX_FILE_SIZE"]; echo "<br>"; echo "userfile_tmp_name is ".$_FILES['userfile']['tmp_name']; echo "<br>"; echo "userfile_error is ".$_FILES['userfile']['error']; echo "<br>"; echo "userfile_size is ".$_FILES['userfile']['size']; echo "<br>"; $dir="c:/work/"; if (move_uploaded_file($_FILES['userfile']['tmp_name'], $dir.$_FILES['userfile']['name'])) { print "File is valid, and was successfully uploaded. "; } else print("UPLOAD ERROR!!"); ?>

    • ベストアンサー
    • PHP
  • ファイルのアップロードが、どうしても どうしても 出来ません・・

    ■アップロードフォーム用のHTMLファイルです↓ ファイル名=gazou_upload.html <html> <head> <title>ファイルのアップロード</title> </head> <body> <form method="POST" action="gazou_upload.php" enctype="multipart/form-data"> <input type="hidden" name="max_file_size" value="1000000" > <input type="file" name="userfile"><br><br> <input type="submit" value="アップロード"> </body> </html> ■受け取ったファイルをサーバ上のディレクトリに移動するPHPファイルです↓ ファイル名=gazou_upload.php <?php // アップロード先ディレクトリ+ファイル名の指定 $uploaddir = '/image/'; $uploadfile = $uploaddir. $_FILES['userfile']['name']; if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) { print "ファイルアップロード成功"; print_r($_FILES); } else { print "ファイルアップロード失敗"."<br>"; print_r($_FILES); } ?> ■結果 Warning: move_uploaded_file(/image/P1010851.jpg): failed to open stream: No such file or directory in /home/sites/lolipop.jp/users/**********/web/gazou_upload.php on line 8 Warning: move_uploaded_file(): Unable to move '/tmp/phpuqa8g2' to '/image/P1010851.jpg' in /home/sites/lolipop.jp/users/***********/web/gazou_upload.php on line 8 ファイルアップロード失敗 Array ( [userfile] => Array ( [name] => P1010851.jpg [type] => image/pjpeg [tmp_name] => /tmp/phpuqa8g2 [error] => 0 [size] => 84509 ) ) 簡単なプログラムなのにちゃんと動作してくれません。色々試行錯誤試したりしているのですが・・初心者で本当に困ってます。どなたかアドバイスよろしくお願いします。

    • ベストアンサー
    • PHP
  • ファイルのアップロードがどうしても出来ません。

    単に画像ファイルをアップロードさせるだけなのですが、何故か出来ません。プログラミングに関しては初心者ですので、どなたかアドバイスをよろしくお願いします。 ■アップロードフォーム用のHTMLファイルです↓ ファイル名=gazou_upload.html <html> <head> <title>ファイルのアップロード</title> </head> <body> <form method="POST" action="gazou_upload.php" enctype="multipart/form-data"> <input type="hidden" name="max_file_size" value="1000000" > <input type="file" name="userfile"><br><br> <input type="submit" value="アップロード"> </body> </html> ■受け取ったファイルをサーバ上のディレクトリに移動するPHPファイルです↓ ファイル名=gazou_upload.php <?php if (move_uploaded_file($_FILES['userfile']['tmp_name'], "/image/")) { print "ファイルアップロード成功"; print_r($_FILES); } else { print "ファイルアップロード失敗"."<br>"; print_r($_FILES); } ?> ■ファイルを保存するディレクトリ 上のファイルと同じ階層で フォルダ名が image パーミッションは3つとも 707 にしました。 パーミッションが拒否されたというメッセージだと思うので、パーミッションを変更したのですがダメでした・・ちなみにサーバはロリポップを使っていて、777と666はエラーになると注意書きがあったので、707にしました。かなりハマっていて困っています。回答もしくはアドバイスをどなたかよろしくお願いします。

    • ベストアンサー
    • PHP
  • PHPでファイルのアップロード

    OSはLinuxのfedoraを利用しており、WebサーバーソフトはApacheを利用しています。 PHPを使って、クライアントからサーバーにファイルのアップロードをしたいのですが、プログラミングがあまり理解できておらず、アップロードができません。ちなみにphp.iniファイルの設定に関しては、アップロードは受け付けるようにしていますし、設定にミスはないと思います。 sample.phpというファイル名で下記のファイルを作ってみたのですが、アップロードすることができませんでした。まだPHPは初心者で間違いだらけだと思うのですが、こうすればアップロードできるようになるといった指摘をお願い致します。 <html> <head> <title> </title> </head> <body> <form enctype="multipart/form-data" action="sample.php" method="POST"> <input type="hidden" name="MAX_FILE_SIZE" value="30000"> Send this file: <input name="userfile" type="file"> <input type="submit" value="Send File"> </form> <?php if(isset($uploadfile) and is_uploaded_file($uploadfile)) { if(move_uploaded_file($uploadfile, $path . "/var/www/html/test/" . $uploadfile_name)){ print("<br>Uploaded file saved."); }else{ print("<br>Uploaded file save failed."); } } ?> </body> </html>

    • ベストアンサー
    • PHP
  • phpでファイルが削除できない

    こんにちは。 ファイル名の書かれたdir.txtを開いて、その中から1日以上経過したファイルを削除するtime.phpを作成しようと思っています。 実行してみると、24時間経過したファイルがあっても 「Warning: unlink() [function.unlink]: Permission denied in C:\Program Files\xampp\htdocs\test\time.php on line 33」 というエラーがでて削除できない 実行結果にprintするように指定していない$imaの数値「1128673152」が表示される。 のですが、どこに間違いがあるのでしょうか? time.phpの内容 ---------------------------------------------------------------------- <html> <body> <?php // ファイルを読み込み専用でオープンする $fp = fopen('dir.txt', 'r'); // 終端に達するまでループ while (!feof($fp)) { // ファイルから一行読み込む $line = fgets($fp); $line = rtrim($line); // ファイルの更新時間を調べる $kousin = filemtime("$line"); // 今の時刻 $ima = time(); // 経過時間を計算する $keika = $ima - $kousin; // 出力する print $line; print "<br>\n"; print $ima; print "<br>\n"; print $kousin; print "<br>\n"; print $keika; print "<br>\n"; clearstatcache(); if ( $keika > 86400 ) { unlink( "$file" ); } } // ファイルをクローズする fclose($fp); ?> </body> </html> ----------------------------------------------------------------------

    • ベストアンサー
    • PHP
  • tsvファイルの読み込みエラー

    ファイル読み込み後、内容表示するプログラムをつくったのですが、tsvファイルを読み込むとWEB画面には何も表示されず真っ白になってしまいます(普通のtxtファイルでもタブが入っていると表示しません)。tsv読み込み時は何か設定が必要なのでしょうか? #!/usr/local/bin/perl print "Content-Type: text/html\n\n"; print "<html>\n"; print "<head><title>サンプル</title></head>\n"; print "<body>\n"; if (open(FH, "data/block.txt")) { @file = <FH>; close(FH); print "<p>ファイルの内容は、<br>\n"; foreach $data (@file) { print "$data<br>"; } print "です。</p>\n"; } else { print "ファイルを読み込めません。"; } print "</body>\n"; print "</html>\n"; exit;

  • 教本の説明の意味が分かりません?

    アップロードファイルを受け取る側のPHPスクリプトです。 以下のスクリプトのファイル名は、『fupload.php』です。 <?php $uploaddir = './up/file/';-----------------------------------(1) $uploadfile = basename($_FILES['userfile']['name']); echo '<per>'; if (move_uploaded_file($_FILES['userfile']['tmp_name'],$uploaddir.$uploadfile)){ echo"ファイルアップロードに成功しました。\n"; } else{ echo "ファイルアップロードは不成功です。\n"; } echo '</pre>' ?> 以上がプログラムです。   PHP教本の (1)でアップロードされたファイルを格納するサーバ側のフォルダを指定しています。なお、アップロードするファイルを格納するフォルダはfupload.phpが配置されている 位置の下にupフォルダを作成し、さらにその下にfileの名前で作成』しておきます。 以上ですが、 こういうことでしょうか。 カレントディレクトリ ├ fupload.php └ up(フォルダ) ..... └ file(フォルダ)  宜しくお願いします。

    • ベストアンサー
    • PHP
  • ファイルのアップロードができません

    今日始めたばかりの初心者です。 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> ************************

    • ベストアンサー
    • PHP
  • ファイルアップロードについて【ギブアップです】

    さくらレンタルサーバーを使っています。 クライアントからサーバーへファイルをアップロードする仕組みを作りましたが、ファイルアップロード失敗になります。 どこがいけないのでしょうか? どうしてもわからず質問させて頂きました。 (さくらレンタルサーバーでは不可能??) <HTMLファイル> <html> <head>テスト</head> <body> <form action="./aaa.php" enctype="MULTIPART/FORM-DATA" method="POST"> ファイル:<input type="FILE" name="upfile"> <input type="submit" value="アップロード"> </form> </body> </html> <PHPファイル(aaa.php)> <?php if (move_uploaded_file($_FILES['upfile']['tmp_name'], "/home/test_serv/www/test/files/")){ print "ファイルアップロード成功"; print_r($_FILES); } else { print "ファイルアップロード失敗"."<br>"; print_r($_FILES); } ?> 出力結果は、「ファイルアップロード失敗」になります><;

    • ベストアンサー
    • PHP