![](/img/trans.png)
[英]How to move an uploaded file and upload the path into mySQL database? Using PHP
[英]How to store file path using PHP file upload
我有一个文件上传代码。 我面临一些问题。 我想将文件路径保存在用户上传的数据库中,但我失败了。 你能帮我么。
这是我的代码
<?php
$host="localhost"; // Host name
$username="root"; // Mysql username
$password=""; // Mysql password
$db_name="test123"; // Database name
//$tbl_name="members"; // Table name
$con=mysql_connect("localhost","root","");
if(! $con)
{
die('Connection Failed'.mysql_error());
}
mysql_select_db("test123",$con);
if(isset($_FILES['files'])){
$errors= array();
foreach($_FILES['files']['tmp_name'] as $key => $tmp_name ){
$file_name = $key.$_FILES['files']['name'][$key];
$file_size =$_FILES['files']['size'][$key];
$file_tmp =$_FILES['files']['tmp_name'][$key];
$file_type=$_FILES['files']['type'][$key];
$file_path=$_FILES['files']['path'][$key];
if($file_size > 2097152){
$errors[]='File size must be less than 2 MB';
}
$query="INSERT into upload(`FILE_NAME`,`FILE_SIZE`,`FILE_TYPE`,`FILE_PATH`) VALUES('$file_name','$file_size','$file_type', '$file_path'); ";
$desired_dir="user_data";
//$desired_dir=$options['upload_dir']."user_data";
if(empty($errors)==true){
if(is_dir($desired_dir)==false){
mkdir("$desired_dir", 755); // Create directory if it does not exist
}
if(is_dir("$desired_dir/".$file_name)==false){
move_uploaded_file($file_tmp,"$desired_dir/".$file_name);
}else{ // rename the file if another one exist
$new_dir="$desired_dir/".$file_name.time();
rename($file_tmp,$new_dir) ;
}
mysql_query($query);
}else{
print_r($errors);
}
}
if(empty($error)){
echo "Success";
}
}
?>
你应该尝试这样的事情:
<?php
$host="localhost"; // Host name
$username="root"; // Mysql username
$password="root"; // Mysql password
$db_name="test"; // Database name
//$tbl_name="members"; // Table name
$con=mysql_connect("localhost","root","");
if(! $con)
{
die('Connection Failed'.mysql_error());
}
mysql_select_db("test123",$con);
if(isset($_FILES['files'])){
$errors= array();
foreach($_FILES['files']['tmp_name'] as $key => $tmp_name ){
$file_name = $key.$_FILES['files']['name'][$key];
$file_size =$_FILES['files']['size'][$key];
$file_tmp =$_FILES['files']['tmp_name'][$key];
$file_type=$_FILES['files']['type'][$key];
$file_path=$_FILES['files']['path'][$key];
if($file_size > 2097152){
$errors[]='File size must be less than 2 MB';
}
//$desired_dir=$options['upload_dir']."user_data";
$desired_dir="user_data";
if(empty($errors)==true)
{
if(is_dir($desired_dir)==false){
mkdir("$desired_dir", 755); // Create directory if it does not exist
}
$file_path_name = "$desired_dir/".$file_name;
if(is_dir("$desired_dir/".$file_name)==false){
move_uploaded_file($file_tmp,"$desired_dir/".$file_name);
}else{ // rename the file if another one exist
$new_dir="$desired_dir/".$file_name.time();
rename($file_tmp,$new_dir) ;
}
$query="INSERT into upload(`FILE_NAME`,`FILE_SIZE`,`FILE_TYPE`,`FILE_PATH`) VALUES('$file_name','$file_size','$file_type', '$file_path_name'); ";
mysql_query($query);
}else{
print_r($errors);
}
}
if(empty($error)){
echo "Success";
}
}
?>
通常,当我这样做时,我只会将确切的文件名(文件移动到所需位置后的名称)存储到数据库中。 然后当我想检索时,我只需将文件名附加到文件路径中。
喜欢:
<img src = "/user_data/<?php echo ($file_name); ?>.png";
原因:
存储斜杠和扩展名会使数据库变得混乱。 (个人喜好)。
默认情况下, user_data 文件夹总是可用的,所以为什么不直接引用它以使我的代码更具可读性。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.