2017-07-17 14 views
1

こんにちは私は質問することが1つあります。問題は、特定のフォルダに画像をアップロードしようとしているときです。画像は移動しません。画像情報はデータベースに挿入されますが、画像のみが移動先のフォルダに移動しません。フォルダは空ですが、エラーは表示されません。 Php.iniのfile_uploadはオンになっていますが、イメージはまだ移動していません。私はあなたに感謝し、いくつかのいずれかが、私はこの問題を解決するために役立つことを願ってPHP:アップロードされたファイルがフォルダに移動していません(クローズ)

<form action='try1.php' method='post' enctype='multipart/form-data'> 
<table border='1'><tr> 
    <td><input type='file' name='file_img' /></td><td> 
    <input type='submit' name='btn_upload' value='upload'></td></tr> 
</table> 
</form> 

<?php 

    require 'conf.php'; 

    $link = mysqli_connect($h,$u,$p,$db); 
    if(isset($_POST['btn_upload'])) 
    { 
     $filetmp = $_FILES["file_img"]["tmp_name"]; 
     $filename = $_FILES["file_img"]["name"]; 
     $filetype = $_FILES["file_img"]["type"]; 
     $filepath = "upload/".$filename; 

     move_uploaded_file($filetmp,$filepath); 


    $query = "insert into try (image,type,path) values ('$filename','$filetype','$filepath')"; 
    $result = mysqli_query($link,$query); 


    } 
?> 

: 以下は私のコードです。

(解決済み)私はこの問題を解決しました。そのコードではなく、問題を抱えている私のPCです。助けてくれてありがとう。

+1

**警告**:mysqliを使用する場合は、[パラメータ化されたクエリ](http://php.net/manual/en/mysqli.quickstart.prepared-statements.php)と['bind_param' ](http://php.net/manual/en/mysqli-stmt.bind-param.php)を使用してユーザーデータをクエリに追加します。 **重大な[SQLインジェクションのバグ](http://bobby-tables.com/)を作成したため、文字列の補間または連結を使用してこれを実行しないでください。 ** '$ _POST'、' $ _GET'、**任意の**ユーザデータを直接クエリーに入れないでください。誰かがあなたのミスを悪用しようとすると非常に危険です。 – tadman

+1

どこでエラーを探しましたか? Apacheのログファイルは?私は許可の問題を疑う。 'chown apache:apache/path/to/destination -R' –

+1

move_uploaded_fileは、成功/失敗時にtrue/falseを返します。それを一時変数に保存して出力/ログします。おそらくそれは許可の問題です。 – mkaatman

答えて

1

まずアップロードフォルダを削除します。その後、 コードの下にコードを保管してください。

$filepath = "upload/"; 
    $filePathWithFileName = "upload/".$filename; 

    if (!file_exists($filepath)) { 
     mkdir($filepath, 0777); 
    } 

    move_uploaded_file($filetmp,$filePathWithFileName); 
1

$ filepath = "./upload/" .$filename;

関連する問題