Php 使用mysql don'上传文件;t工作
我写了一个简单的上传系统,但上传系统不工作。我希望你能帮助我 我的php代码:Php 使用mysql don'上传文件;t工作,php,mysql,xampp,Php,Mysql,Xampp,我写了一个简单的上传系统,但上传系统不工作。我希望你能帮助我 我的php代码: if (isset($_POST['taskAdd'])) { move_uploaded_file($_FILES['taskFile1']['tmp_name'], '../files/' . $_FILES['taskFile1']['name']); $stmt = $con->prepare("INSERT INTO tasks (taskFile1) VALUES (:taskFil
if (isset($_POST['taskAdd'])) {
move_uploaded_file($_FILES['taskFile1']['tmp_name'], '../files/' . $_FILES['taskFile1']['name']);
$stmt = $con->prepare("INSERT INTO tasks (taskFile1) VALUES (:taskFile1)");
$stmt->execute();
header("Location: /index/");
}
错误消息:
Warning: move_uploaded_file(../files/login.html): failed to open stream: No such file or directory in C:\xampp\htdocs\functions\taskAdd.php on line 13
Warning: move_uploaded_file(): Unable to move 'C:\xampp\tmp\phpA9F3.tmp' to '../files/login.html' in C:\xampp\htdocs\functions\taskAdd.php on line 13
Fatal error: Uncaught PDOException: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ':taskFile1)' at line 1 in C:\xampp\htdocs\functions\taskAdd.php:15 Stack trace: #0 C:\xampp\htdocs\functions\taskAdd.php(15): PDOStatement->execute() #1 C:\xampp\htdocs\tasks\add\index.php(7): include('C:\\xampp\\htdocs...') #2 {main} thrown in C:\xampp\htdocs\functions\taskAdd.php on line 4
HTML格式:
<form enctype="multipart/form-data" method='post' name='taskAdd'>
<div class="form-group">
<label for="taskFile1">Hochladen1:</label>
<input type="file" class="form-control-file" name="taskFile1" id="taskFile1">
</div>
</form>
Hochladen1:
而不是传递'../files/'$_FILES['taskFile1']['name']
作为移动上传文件的第二个参数,您需要传递:
dirname(文件名)。'/文件/'$_文件['taskFile1']['name']
或者更好
dirname(文件名)。目录“”分隔符文件'。目录分隔符$_文件['taskFile1']['name']
此外,您还必须确保“../files/”目录的权限设置正确。1)
2) $name=$_文件[$v1]['name']
$tmpname=$_FILES["taskFile1"]['tmp_name'];//filetoupload is a name attribute of file input tag.
$target_dir = "uploads/"; //folder name where your files will be stored. create this folder inside "file_upload_api" folder
$target_file = $target_dir.$name ;
move_uploaded_file($tmpname,$target_file)
//并将文件名插入数据库,以便进一步操作
//在html中添加按钮以执行上载
$stmt = $con->prepare("INSERT INTO tasks (taskFile1) VALUES (?)");
$stmt->bind_param("s", $_FILES['taskFile1']['name']);
$stmt->execute();
您需要了解tasks表中taskFile1字段的数据类型是什么?您是要将文件信息(名称、路径等)或完整的文件作为二进制文件存储在数据库中吗?taskFile1的数据类型是varchar,我将只在数据库中保存名称,并将文件保存在文件夹“file”中。您应该在prepare before
execute()
发布完整的HTML表单后进行绑定