在我當前的代碼中,我只插入文件的文件名,文件存儲在一個文件夾中。 我也想將文件存儲在我的mysqldatabase中。我怎樣才能做到這一點。PHP在mysql數據庫中插入文件
我的表: ID FILE_NAME fcontent(LONGBLOB)
include 'db.php';
if(isset($_FILES['image'])){
$errors= array();
$tablename = "files";
$file_name = $_FILES['image']['name'];
$file_size =$_FILES['image']['size'];
$file_tmp =$_FILES['image']['tmp_name'];
$content =$_FILES['image']['fcontent']; // content in database
$sql="INSERT INTO $tablename(file_name,content)VALUES('" . mysql_real_escape_string($file_name) . "')"; // here i need to insert the content i assume
$file_ext=strtolower(end(explode('.',$_FILES['image']['name']))); //convert to lower
$extensions = array("jpeg","jpg","png","txt","html","php","gif"); // File extension that are
allowed
if(in_array($file_ext,$extensions)=== false){ // check if value exists in array
$errors[]="extension not allowed.";
}
if($file_size > 2097152){ // cant be greater than 2mb
$errors[]='File size must be excately 2 MB';
}
if(empty($errors)==true){
mysql_query($sql);
move_uploaded_file($file_tmp,"upload/".$file_name);
echo "Success";
header("location:files.php"); // Send back to main page
}else{
print_r($errors);
}
}
?>
一般來說它來存儲文件的最佳實踐在一個文件夾中,並將名稱存儲在數據庫中。數據庫中是否存在需要該文件的特定原因? – 2013-03-25 16:46:23
你從** NOT **開始將文件放入數據庫。很少有使用情況證明它的合理性,並且缺點是令人討厭的。你也開始有適當的上傳處理代碼,並且** NOT **假設上傳成功。 – 2013-03-25 16:46:52
爲什麼要將文件存儲在數據庫中?在大多數應用程序中,這是一個糟糕的主意。考慮到你現在不知道該怎麼做,我想知道你是否也真的想過要做這件事的原因。 – 2013-03-25 16:46:58