2014-03-25 34 views
0

我想保存圖像到我的服務器,看看它的代碼使用PHP和MySQL ..我有這個錯誤的圖像位置不會出現在我的數據庫只出現以下內容在桌子上的位置:'照片/」它不保存圖像名稱MySQL插入不使用PHP插入期望值

我怎樣才能做到這一點

這是我的代碼:?

// Uploading image file and store it to specific folder & save location into db 
$image= addslashes(file_get_contents($_FILES['image']['tmp_name'])); 
$image_name= addslashes($_FILES['image']['name']); 
move_uploaded_file($_FILES["image"]["tmp_name"],"photos/" . $_FILES["image"]["name"]); 
$location="photos/" . $_FILES["image"]["name"]; 

//storing path to db 
$save=mysql_query("INSERT INTO photos (location) VALUES ('$location')"); 
+0

你是直接運行這個php文件嗎?顯示你的上傳表格 –

+0

做一個'var_dump($ _ FILES);'看圖像是否被正確接收,爲什麼你不使用這些變量? –

+0

你的表單標記是什麼?還有「照片」文件夾有寫權限 – PravinS

回答

0

你的錯誤處理是非常糟糕的。改用下列代碼;

foreach ($_FILES["image"]["error"] as $key => $error) { 
    if ($error == UPLOAD_ERR_OK) { 
     $tmp_name = $_FILES["image"]["tmp_name"][$key]; 
     $name = $_FILES["image"]["name"][$key]; 
     $full_path = "photos/" . $name; // be sure path is writable 
     move_uploaded_file($tmp_name, $full_path); 
     $save=mysql_query("INSERT INTO photos (location) VALUES ('$full_path')"); 
    } else { 
     die($error); 
    } 
} 
0

你必須檢查是否上傳OK:

if ($_FILES['image']['error'] == UPLOAD_ERR_OK) { 
    move_uploaded_file($_FILES["image"]["tmp_name"],"photos/" . $_FILES["image"]  ["name"]); 
    $location="photos/" . $_FILES["image"]["name"]; 

    $save=mysql_query("INSERT INTO photos (location) VALUES ('$location')"); 
} else { 
    // File not uploaded. Check if you use multipart/form-data in form 
} 
0

可能是我不會放棄ü確切的答案,但它可以幫助ü.. 這是代碼在數據庫中上載圖像。在DB將保存爲二進制的(LONGBLOB)...

這裏是代碼...

HTML文件

<form method="POST" action="action.php" enctype="multipart/form-data" name="myform" id="myform"> <input type="file" name="ufile" id="ufile" /> <input type="submit" name="upload_ad" value="Create">

PHP文件 - action.php

$filesize=$_FILES['ufile']['size']/1024;

$filetype=$_FILES['ufile']['type'];

$filename=$_FILES['ufile']['name'];

$tmp_file=$_FILES['ufile']['tmp_name'];

$content = addslashes (file_get_contents($_FILES['ufile']['tmp_name']));

$filename=addslashes($filename);

$result = mysql_query("insert into table_name (image) values ('$content')");