• ベストアンサー

input type="file"を使わずにファイルをアップロードする方法

質問の内容が悪かったため、ご理解いただけなかったようですので、 再度質問いたします。 ブラウザのボタンを押されたときに、PHPのソースだけで 場所固定のローカルディレクトリの中のファイルをサーバーへ転送しようとしています。 この方法にはどのようにコードを記述すればよいか教えてください。 お願いいたします。

  • PHP
  • 回答数3
  • ありがとう数1

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

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

多分前のスレッドにあったftpって答えが良さそうな気がします。 ローカルにPHPスクリプトがあるって前提ですかね? この場合はFTP関数などを使って転送することが出来るかと思います。 http://jp.php.net/manual/ja/ref.ftp.php この辺の関数が使えると楽かも知れません。 PHPスクリプトがサーバー側にあって、サーバー側からローカルに取りに行きたい場合は、ローカル側にFTPなどのサーバーを用意する必要があります。 サーバーによっては稀にPUTメソッドを許可してたりするかも知れません。

tatapata
質問者

補足

mizuno3さん、ありがとうございます。 ローカルというのは、クライアント側のマシンです。 ブラウザで見ているサイトの管理しているサーバーに、 クライアントマシンからクリップドライブなどの中のファイルを 送信するといった感じです。 phpはサーバー側にあり、サイト自体がファイルを転送する機能を 備えているようなつくりです。 やはりセキュリティなどから、難しいことなのでしょうか?

その他の回答 (2)

noname#39970
noname#39970
回答No.2

クライアント側からローカルファイルを提供する方法が input type="file" 以外ではjavaを使うくらいしかないと思う。(アプレットね) PHPはサーバ側の仕掛けだから。 「ローカル」が何を指しているのか、もう少し正しく

tatapata
質問者

補足

『ローカル』はファイルをアップする側のクライアントのPCですが、 場所はリムーバブルディスクから全ファイルを転送するといった ながれにしようと思っています。 例でいうと、クリップドライブを指してからブラウザ上のボタンを押すと、 一気に送信が始まる…と言った感じです。

  • php504
  • ベストアンサー率42% (926/2160)
回答No.1

セキュリティー的にそういうことはできないようになっています そういうのはウィルスやスパイウェアの仕事ですから

tatapata
質問者

お礼

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

関連するQ&A

  • input type="file"を使わずにファイルをアップロードする方法

    Formで fileの入力フォームを使用せずに、ファイルをアップロード する方法を探しています。 要は、特定のローカルディレクトリの中のファイルを一括して転送したい のですが、input type="file" を使わずに行えるようにしたいのです。 使っている環境はPHP5?です。 何卒宜しくお願いいたします。

    • 締切済み
    • PHP
  • ローカルからサーバーへのファイルアップロードについて

    質問があります。 今ホームページを作成しています。 画像をあつかいたいのですが、FTPなどのソフトを使用せずにPHPで作成したWEB画面からローカルの画像を サーバーにアップロードしたいと考えています。 WEB画像はサーバー上にあり、 表示部分<INPUT>と参照ボタンとアップロードボタンが あります。 参照を押下すると自分の使用しているローカルのファイル・ディレクトリ情報があり、エクスプローラーバーが表示されてファイルを選択すると入力画面に 選択されてあファイル名が表示されるようにしました。 それでアップロードボタンを押すと、 WEB画面と同じサーバーの同じ場所に指定したファイルが アップロード(転送)される仕組みにしたいのですが、 どのようにすればいいでしょうか? アドバイスお願い致します。 【PHP:4.02】

    • 締切済み
    • PHP
  • input TYPE="FILE"で取得した画像を表示

    お世話になります。 htmlのタグにinput type="file"というのがありローカルの画像を選択できるエクスプローラが起動するというボタンなのですが、それで選択した画像ファイルをサーバ処理を行うことなくブラウザに表示させたいのです、こんなことが可能なのでしょうか? なにかサンプル等ご存知の方宜しくお願いします。

    • ベストアンサー
    • HTML
  • PHP3でローカルのファイルデータを取得したいのですが

    PHP3でサーバーからローカルのファイル(ディレクトリは固定)を読み込むことはできるのでしょうか?サーバーからサーバーはいけてもサーバーからローカルというのは可能なのでしょうか?

    • ベストアンサー
    • CGI
  • CGIタイプのPHPとは・・・?

    PHPのCGIタイプとはどのようなものなのでしょうか? 借りているレンタルサーバーで普段はxxx.php(xxxはファイル名) として使用していますが、このバージョンがphp4.2.2なのです。 それで、php5のコマンドを使用する必要性が出てきたのですが、当然、xxx.phpでは使用できません。 が、レンタルサーバーのマニュアルに、 「PHP5はCGIタイプで使用できます。SSIタイプではPHP4となります。PHP5をご利用の場合、PHP5で記述したスクリプトの一行目に#!/usr/bin/php5 または #!/usr/local/bin/php5 と記述して下さい。CGIタイプのPHPの場合、拡張子はCGIに準じます。」 とあります。 質問 1.このCGIタイプのPHPとは、拡張子が.cgiというだけで中身がphpの記述なのでしょうか?(しかし1行目に記述する#!/usr/bin/php5の記述はperlのような気もします)。 もしくはPHP5を利用したい場合はperlで記述するということでしょうか(意味不明ですが)?? 2.あと後学のために教えてほしいのですが、私が普段使用している.phpはSSIタイプとのことですが、マニュアルに 「SSIタイプのPHPの場合PHPファイルの拡張子を.phpまたは.php4にして下さい。これらの拡張子のファイルだけがPHPファイルとして処理されます。また、拡張子が「.phps」のファイルは、phpソースとして処理されます。」 とあります。これはhtmlコードの中に<?php~?>を記述できるからSSIタイプと言っているのでしょうか?(私は普段はphpコードでhtmlを生成しています)。 あと、phpソースとはどのような処理のことを言うのですか? 初心者的な質問ばかりですみません。どうしてもPHP5を利用したいのでお教えいただければと思います。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • javascriptでファイルを開く

    サーバに置いてあるjavascriptを記載したhtmlファイルから 同じサーバ,ディレクトリにある.txtファイルをjavascriptで自動で開くことは可能でしょうか? ローカルに保存されているファイルを開くことは難しいと思いますが, 同じサーバ内のディレクトリにあるファイルなら ボタンを押してファイルを選択するなどの手順を伴なわずに 自動で開くことは可能なのでしょうか? もし可能ならばどのように記述すればよいのでしょうか? よろしくお願いいたします.

  • ファイルのアップロードが出来ない

    送信フォームを使って画像をアップロードさせたいのですが、うまくいきません。ブラウザ上でエラー表示は出ないのですが、移動させたいディレクトリにファイルが入って来ない状況です。 初心者なので、参考書を片手に例文をカスタマイズしていったので、アルゴリズム自体がどこか間違っているかもしれないです。 特に下記ソースコード中の 『$path = getcwd();~』 の辺りで、スクリプトのあるディレクトリパスを取得して、パスの末尾に"¥"or"/"を追加しているのは理解出来るのですが、 そもそも何のスクリプトのパスを取得しているのかが解らず、 結局テンポラリディレクトリからの移動先ディレクトリを自分で$new_dirと定義してmove_uploaded_file()しています。 どなたか詳しい方いらっしゃいましたらご教示宜しくお願いします! ===========ソースコード=============== <?php if (isset($_POST["submit"])) { //------------------------------------------------------------------------- //■クライアントから取得する元ファイル名を$pic_name、 //■テンポラリディレクトリ名を$pic_tmp //■テンポラリディレクトリからの移動先ディレクトリを$new_dir //------------------------------------------------------------------------- $pic_name = $_FILES["pic"]["name"]; $pic_tmp = $_FILES["pic"]["tmp_name"]; $new_dir = "http://xxx.com/pic/"; //---------------------------------------------------------------------------------- //■エラーメッセージは配列に追加 //---------------------------------------------------------------------------------- $error_message = array(); $path = getcwd(); if (isset($_ENV["OS"]) && preg_match("/window/i", $_ENV["OS"])) { $path .= "\\"; } else { $path .= "/"; } if (strlen($pic_name)>0 && strlen($pic_tmp)>0) { //---------------------------------------------------------------------------------- //■テンポラリディレクトリにファイルがアップされているかチェック //---------------------------------------------------------------------------------- if (is_uploaded_file($pic_tmp)) { //---------------------------------------------------------------------------------- //■ファイルを移動 //---------------------------------------------------------------------------------- if (!move_uploaded_file($pic_tmp, $new_dir .basename($pic_name))) { $error_message[] = "●自画像ファイルのアップロードに失敗しました"; } } } } ?> <html> <form method="post" action="<?=$SERVER["PHP_SELF"]?>" enctype="multipart/form-data" > 画像のアップロードフォーム <input type="hidden" name="MAX_FILE_SIZE" value="100000"> <input type="file" name="pic" size="40"> </html>

    • ベストアンサー
    • PHP
  • ブラウザ経由でコンテンツの再帰的アップロード

    ブラウザ経由で、windowsのローカルコンピューター上にある圧縮して いない階層構造を含むフォルダをリモートサーバ上に再帰的にアップ ロードすることは可能でしょうか。 リモートサーバ側は、linuxでphp、ローカルはwindows xpでIEまたは FireFoxのブラウザです。 要望としては、ローカルで作ったコンテンツをFTPクライアントを起動 せずにブラウザー経由でサーバ上に転送し、サーバ上のコンテンツを ブラウザ上で管理するということです。 普通はブラウザ経由では、ローカルのファイルシステムを読み込むこと は無理ではないかと思うのですが、ご存知の方いましたら教えてください。 圧縮ファイルを作成してアップロード後スクリプトでサーバ上に展開 させるような仕組みしかないのでしょうか。

    • 締切済み
    • PHP
  • アップロードしたら表示されなくなった

    こんにちは、お世話になってます。 そのままなんですが、ローカルでは見れていたjava appletがアップロードすると灰色になって(ロードしていない状態)になり、カーソルを合わせると、 load:class ****(ファイル名) not foundと表示されます。 しかし、きちんとアップロードされていて、ディレクトリも間違っていません。 使っているサーバーはCGI・PHPなどもOKな有料サーバーで、java が使えないとは思えません。一応探してみましたが、そういった記述はありませんでした。 何が原因なんでしょうか?ご存知の方いらっしゃいましたらご解答お願いします。

  • phpでファイルをアップロードできるか?

    phpでのファイルアップロードについて質問します。 再質問となりますが、実際にコードを作成してやってみてうまくいかないので、 あらためて質問させていただきました。 eラーニング教材(htmlで作成)で、動画ファイルをストリーミングさせることになりました。 ウェブサーバ側へのアップロードする画面として、move_uploaded_file()やis_uploaded_file()メソッドをつかっていましたが、ストリーミングサーバ側としてFTP通信でポート20、21からのみのアップロードのみ許可されているとのことです。 ftp_put()メソッドを使ってアップロードさせたところうまくいきません。 **************<コード>************* $ftp_server="【サーバー名】"; $ftp_user_name="【アカウント名】"; $ftp_user_pass="【パスワード】"; $conn_id = ftp_connect($ftp_server); $login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass); if ((!$conn_id) || (!$login_result)) { echo "FTP接続に失敗しました。"; exit; } else { echo "FTP接続に成功しました。"; } ここまででFTPの接続はできているようです。 その直後に、 $local_file="【ローカルのファイルパス】"; $remote_file="【FTPサーバー上のアップロードファイルパス】"; if (!ftp_put($conn_id, $remote_file, $local_file, FTP_BINARY)) { echo "FTPアップロードに失敗しました。"; exit; } else { echo "FTPアップロードに成功しました。"; } **************<コード>************* FTPアップロードに失敗します。 原因がわからなく、こまっています。 ポートの指定が必要なのでしょうか? おしえてください。 よろしくおねがいたします。 **************** FTP supportはenabled になっています。 phpのバージョンは4または5です。 IE7以上のブラウザ環境を想定しています。

    • ベストアンサー
    • PHP

専門家に質問してみよう