无法使用php将上传的图像上传到上传文件中

时间:2017-06-07 07:42:04

标签: php html

创建表单并输入php代码后,我有一个表单,我可以输入文件,特别是图像,没有收到任何错误消息,以及在我的网址中获取成功消息,图像上传仍然无法在目标文件夹中找到。

这是HTML

<form action="" class="navbar-form navbar-right" role="search">
                    <div class="form-group">
                        <input type="text" class="form-control" placeholder="Find Art Here">
                    </div>
                    <button type="submit" class="btn btn-primary">Search</button>
                </form>

这里是php

<?php
if (isset($_POST['submit'])) {
$file = $_FILES['file'];

$fileName = $file['name'];
$fileTmpName = $file['tmp_name'];
$fileSize = $file['size'];
$fileError = $file['error'];
$fileType = $file['type'];

$fileExt = explode('.', $fileName);
$fileActualExt = strtolower(end($fileExt));

$allow = array('jpg', 'jpeg', 'png', 'pdf');

if (in_array($fileActualExt, $allow)) {
    if($fileError === 0){
        if($fileSize < 5000000) {
            $fileNameNew = uniqid('', true).".".$fileActualExt;
        $fileDestination = 'uplaods/'.$fileNameNew;
        move_uploaded_file($fileTmpName, $fileDestination);
            header("Location: index.php?uploadsucess");
        } else{
            echo "Your file is too big";
        }
    } else {
        echo "There was an error uplaoding your file!";
    }
} else{
    echo "You cannot upload files of this type!";
}

}

代码基于此视频并进行了修改:https://www.youtube.com/watch?v=JaRq73y5MJk

非常感谢任何帮助!

5 个答案:

答案 0 :(得分:1)

在您的表单中添加

.modal-body {
    width: 400px;
    overflow-x: scroll;
}
.scoll-tree{
   width: 800px;//ideally you it is better to make js script which will calculate this value
   height:80px;
}

例如

  enctype="multipart/form-data"

答案 1 :(得分:0)

您是如何与$_FILES沟通的?你需要使用 输入中的type="file"

答案 2 :(得分:0)

您要做的第一件事是将enctype="multipart/form-data"method="post"添加到您的form标记中:

<form action="" method="post" enctype="multipart/form-data">

如果它仍然不起作用,请检查upload_max_filesize中的post_max_sizephp.ini设置。如果您的文件太大,则只有move_uploaded_file()会返回false,因此请检查该功能。

答案 3 :(得分:0)

您的<form>错过属性来发送文件:

enctype="multipart/form-data"

为确保上传完成,请将move_uploaded_file()置于某个条件中,因为该函数返回布尔值

if (move_uploaded_file($fileTmpName, $fileDestination)) {
    header("Location: index.php?uploadsucess");
} else {
    header("Location: index.php?uploadfail");
}

此外,获取文件扩展名的更好方法是使用pathinfo()

pathinfo($fileName, PATHINFO_EXTENSION);
  • 您的表单中没有任何<input type="file">
  • 您可能会错误上传目录: uplaods

php.net - move_uploaded_file()
php.net - pathinfo()

答案 4 :(得分:0)

1)在表单标记中添加enctype="multipart/form-data"。 2)文件名上的fileDestination = 'uplaods/'.$fileNameNew;拼写错误。 (如果是有意的,那么我的坏)。 3)<input type='file'>类型应该是文件。