2016-09-25 5 views
0
<?php 

include("mysqlconnect.php"); 

function GetImageExtension($imagetype) 
{ 
    if(empty($imagetype)) return false; 

    switch($imagetype) 
    { 
     case 'image/bmp': return '.bmp'; 
     case 'image/gif': return '.gif'; 
     case 'image/jpeg': return '.jpg'; 
     case 'image/png': return '.png'; 
     default: return false; 
    } 
} 



if (!empty($_FILES["uploadedimage"]["name"])) { 

    $file_name=$_FILES["uploadedimage"]["name"]; 
    $temp_name=$_FILES["uploadedimage"]["tmp_name"]; 
    $imgtype=$_FILES["uploadedimage"]["type"]; 
    $ext= GetImageExtension($imgtype); 
    $imagename=date("d-m-Y")."-".time().$ext; 
    $target_path = "img/".$imagename; 


    if(move_uploaded_file($temp_name)) { 

     $query_upload="INSERT INTO test_image ('id' ,'image', 'image_path',  'submission_date') VALUES ('".$target_path."','".date("Y-m-d")."')"; 

     mysqli_query($query_upload) or die("error in $query_upload == ----> ".mysqli_error()); 

    }else{ 

     exit("Error While uploading image on the server"); 
    } 

} 

?> 

警告が与えられる2つのパラメータ、期待:move_uploaded_file()は正確に2つのパラメータ、期待1行に/home/u957762221/public_html/saveimage.phpに示さ29move_uploaded_file()は、正確に1

このコードは、サーバー

+0

私は解決策を提供しました。あなたが何らかの妨害を見つけたらそれを実装し、考えを共有してください。 –

+0

mysqli_query()に接続変数がありませんでした。私はエラーを理解しました。希望すると助かります。 –

+0

[マニュアルを読む](http://php.net/manual/en/function.move-uploaded-file.php) – Jeff

答えて

2

move_uploaded_file(string $filename, string $destination)

この関数に画像をアップロードしようとするエラーをスロー(WHE宛先として第二のパラメータを必要とファイルをアップロードする)。 1つのパラメータ(ファイル名である$temp_name)を指定しました。私はあなたのコード内で目的地に似た何かを見るので、代わりにこれを試してみてください。

if(move_uploaded_file($temp_name, $target_path)) { 
1

まず、あなたは本当にGetImageExtension()機能することを必要としない場合があります。 PHPのpathinfo()は、Extension for Youを入手するだけで問題ありません。とにかく ;以下は2つのパラメータを受け入れるmove_uploaded_file($filename, $destination)の正しい構文です:最初のFile-Name($ _FILES Globalから)とDestination(ファイルを保存する場所 - ファイル名を含むパス)

アップロード中にエラーが指摘されます
<?php 

    include("mysqlconnect.php"); 


    if (!empty($_FILES["uploadedimage"]["name"])) { 
     $file_name  = $_FILES["uploadedimage"]["name"]; 
     $temp_name  = $_FILES["uploadedimage"]["tmp_name"]; 
     $imgtype  = $_FILES["uploadedimage"]["type"]; 
     $ext   = pathinfo($file_name, PATHINFO_EXTENSION); 
     $imagename  = date("d-m-Y") . "-" . time() . "." . $ext; 
     $target_path = "img/".$imagename; 

     // YOU JUST FORGOT THE DESTINATION: $target_path ;-) 
     if(move_uploaded_file($temp_name, $target_path)) { 
      // HERE WE USED THE IMAGE-TYPE/EXT. AS THE VALUE FOR THE TABLE-COLUMN: `image` 
      // IT IS UP TO YOU TO SUBSTITUTE THE RIGHT VALUES THERE... 
      $query_upload = "INSERT INTO test_image ('image', 'image_path', 'submission_date') VALUES "; 
      $query_upload .= "('" . $ext . "', " . $target_path . "', '".date("Y-m-d")."')"; 


      mysqli_query($query_upload) or die("error in $query_upload == ----> ".mysqli_error()); 

     }else{  
      exit("Error While uploading image on the server"); 
     } 

    } 
+0

ありがとうございますが、まだエラーがあります>< 警告:mysqli_query()は、/ home/u957762221/public_html/saveimageに指定されたパラメータ1を正確に1と仮定して、少なくとも2つのパラメータ、/home/u957762221/public_html/saveimage.phpの1行目に与えられた1を返します。 .php on line 17 INSERT INTO test_image( 'id'、 'image'、 'image_path'、submission_date)VALUES( 'img/25-09-2016-1474813786png'、'2016-09-25 ')のエラー== ----> –

+0

'mysqli_query'はdb接続を最初の引数として必要とします。これは' mysqli_query($ con、$ query_upload);とよく似ています; 'id'が自動インクリメント列通常)SQL文は必要ありませんt - 必要な値よりも少ない値が渡されます。また、列名は一重引用符ではなくバッククォートで囲む必要があります – RamRaider

+0

@Nutcha Waropashpimarnそれでは、新しい問題です。MySQLベースの問題ですが、投稿にも更新されています.....それをチェックしてください... – Poiz

1

(move_upload_fileための2つの引数を渡すことが必須である)他の賢明

のArg:1 file - 必要にファイルを指定します。移動する

Arg:2 newloc - 必須。ファイルの新しい場所を指定します

move_uploaded_file() - これは、画像の取得が容易で画像の表示がわかるように、ターゲットパスを指すサーバーにファイルをアップロードしますアップロードされた写真のみの助けを借りて行われました。

move_uploaded_file()関数は、アップロードされたファイルを新しい場所に移動します。

この関数は、成功するとTRUE、失敗した場合はFALSEを返します。

構文:move_uploaded_file($filename, $filepath);

$filename: $_FILES["file"]["tmp_name"]; 

$filepath: is the folder where you need to upload the images. 

mysqli_query($ CONN、$ query_upload) - それは二つのパラメータ1は、接続変数であり、もう一つは、クエリで処理することであるが必要です。

ここ

$conn- Connection variable for the DB 
$query_upload - It is the query to be executed. 

以下のいずれかで、あなたのコードを置き換えます。

<?php 
if(move_uploaded_file($temp_name,$target_path)) { 

$query_upload="INSERT INTO test_image ('image', 'image_path', 'submission_date') VALUES ('".$target_path."','".date("Y-m-d")."')"; 

mysqli_query($conn,$query_upload) or die("error in $query_upload == ----> ".mysqli_error()); 

}else{ 

    exit("Error While uploading image on the server"); 
} 
} 
?> 
+0

@Nutcha Waropashpimarn。このコードを使用してみてください。そしてそれについて考えを共有してください。 –

関連する問題