Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用mysql don'上传文件;t工作_Php_Mysql_Xampp - Fatal编程技术网

Php 使用mysql don'上传文件;t工作

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

我写了一个简单的上传系统,但上传系统不工作。我希望你能帮助我

我的php代码:

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中添加按钮以执行上载

  • 您的insert语句不正确
  • 您没有提供insert参数。i、 e.约束力
  • 应该是:

    $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表单后进行绑定