【发布时间】:2015-09-07 15:41:54
【问题描述】:
我是 PHP 新手。我有一个文件上传代码并将其保存在 mysql 中。我想在上传文件时设置特定路径。例如我设置路径
C:\xampp\htdocs
当我点击上传按钮时,我的这个目录就会打开。
这是我的代码
<?php
$host="localhost"; // Host name
$username="root"; // Mysql username
$password=""; // Mysql password
$db_name="test123"; // Database 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];
if($file_size > 2097152){
$errors[]='File size must be less than 2 MB';
}
$query="INSERT into upload_data (`FILE_NAME`,`FILE_SIZE`,`FILE_TYPE`) VALUES('$file_name','$file_size','$file_type'); ";
$desired_dir="user_data";
if(empty($errors)==true){
if(is_dir($desired_dir)==false){
mkdir("$desired_dir", 0700); // 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";
}
}
?>
<form action="" method="POST" enctype="multipart/form-data">
<input type="file" name="files[]" multiple/>
<input type="submit"/>
</form>
【问题讨论】:
-
你有什么错误吗?
-
@AnkiiGangrade 不,我没有收到任何错误。实际上我想知道如何在上传文件时设置特定路径。
-
您的文件上传代码是正确的,只需将权限从 700 更改为 755。我认为在您运行代码时,您已经创建了文件夹 user_data,因此为简单起见,删除或重新分配访问权限或更改文件夹名称并给出代码中的 755 权限。
-
@AnkiiGangrade 能否请您通过更改我的代码来简要解释一下。这是我对你的谦虚要求。
-
另外testapp必须有可写权限
标签: php mysql file-upload filepath