2012-04-13 16 views
0

このままスタックして、アップロードのw3schoolsバージョンから試してみましたが、行ってはいけません。PHPアップロードファイル、ファイルURLをMySQLに保存

マイ_events.phpスクリプトは、ファイルの情報を取得するには、以下が含まれます。

<input name="event_image" type="file" /> 

マイ_eventscreate.phpスクリプトは、かつて私は、URLたいアップロード、私の_gallery /ディレクトリにファイルをアップロードする方法はありません私のデータベースに保存されるファイルに追加します(SQLクエリを参照)。

<?php // Get Event ID 
    $location=$_GET['location']; 

    // Get values from form 
    $event_name=$_POST['event_name']; 
    $event_description=$_POST['event_description']; 
    $event_date=$_POST['event_date']; 
    $event_time=$_POST['event_time']; 
    $event_cost=$_POST['event_cost']; 
    $event_image=$_POST['event_image']; 

    // Connection to MySQL Database. 
    include ('_includes/_dbconnection.php'); 
    include ('_includes/_dbopen.php'); 

    // Update Event using Event ID. 

    $sql="INSERT INTO b_events (ename, edescription, edate, etime, ecost, locationid, eimage)VALUES('$event_name', '$event_description', '$event_date', '$event_time', '$event_cost', '$location', '$event_image')"; 
    $result=mysql_query($sql); 

    if($result){ 
    header('Location: _events.php'); 
    } 

    else { 
    header('Location: _home.php'); 
    } 

?> 

URLによって

+0

あなたのajaxコードを表示できますか? –

+0

$ _FILES http://php.net/manual/en/reserved.variables.files.phpを使用する必要があることがわかっていない場合は、ajaxで処理したコードブロックを貼り付けますか? – encodes

答えて

0

を助けてください、私はあなたがファイルのローカルコピーへのパスではなく、リモートソースの場所を意味すると仮定するつもりです。私が間違っていると答えたのはおそらく "ファイルのアップロードを使わないでください"です。

PHPスクリプトが実行されると(特に異常なことがない限り)、ファイルのアップロードが完了し、ファイル情報(名前、サイズなど)が$ _FILEに保存されていることを意味します。パスを保存または使用するには(または実際に_galleryに移動する)そのパスを設定する必要があります。 アップロードしたファイルは、$ _FILES [fileID] ["tmp_name"]のパスに保存されます。しかし、あなたはこのパスで直接操作することはできません。例えば、移動や読み込み操作(少なくとも私はApache2ではできませんでした)。

まず、そのファイルをPHPのinbuitメソッドを使用して、選択した場所に書き出す必要があります。例えば:、ファイルが希望し、それが(上記の例では「_gallery /".$_ FILES [ファイルID] [」名前 "])アドレスだとしてやってあなた次第です

move_uploaded_file($_FILES[fileID]["tmp_name"], "_gallery/".$_FILES[fileID]["name"]); 

その時点の後でありますもう1つのPHP文字列。

URLで、そのファイルの外側に向かうアドレス(ブラウザにファイルにアクセスするユーザー)を指定する場合は、自分で作成する必要があります。ファイルがウェブルート内にある最も単純なケースでは、それはあなたが書いたばかりのファイルへの相対パスを連結することを意味します。ハードコードされたベースURLを使用しない場合は、$_SERVERの値が役に立ちます。

+0

私の使用したい画像を選択できる私の書式POSTを見てください。 ""、スクリプトを提出すると_eventcreate.phpへイベントはPHP(同じドメイン)を作成するファイルは、アップロードを開始する必要があります、DBのファイルのURLを保存します。あなたのコードでそれを強調してください。 – Boldie

+0

ああ、私は参照してください。それから私は大いに助けることができないと思います。残念ながら、私はあなたがこれを行うにはtype = "file"入力を使うことはできないと思います。ファイルのアップロードは、_eventcreate.phpが呼び出されるまでに既に実行されています。この作業をするためには、クライアントサイドでかなり巧妙なことをする必要があるでしょう(JQueryプラグインがあると思いますが、それは私の知る限りです)。 – Bhau

0

$ event_image = $ _POST ['event_image']は使用できません。アップロードされたファイルを取得します。

<input type="file" name="something" /> 

また、あなたのフォームは=「POST」メソッドとのenctypeを持っていることを確認してください:$名は名であるアップロードされたファイルにアクセスするには

、あなたは$ _FILES [$名]を使用する必要があり、 = "マルチパート/フォームデータ"。

$ _FILES [$ name]のそれ自体がキーを持つ配列(連想配列)、あろう:

  • タイプ
  • サイズ
  • tmp_name
  • エラー

ファイルが正常にアップロードされた後($ _FILES [$ name] ['error']でテストする== UPLOAD_ERR_OK)、あなたはあなたの好みの場所に移動する必要があります。

ファイルを移動した後(move_uploaded_file()を使用して)、名前を取得して$ event_imageに値を割り当てることができます。それをデータベースに保存します。

詳細については、read thisを参照してください。

関連する問題