php上载脚本未上载-但正在添加到数据库?

php上载脚本未上载-但正在添加到数据库?,php,forms,file-upload,Php,Forms,File Upload,当我尝试为用户配置文件制作横幅艺术上传系统时,出现了一个奇怪的问题 我一直在寻找答案,但都没有找到答案 这不是权限问题,我的chmod在uploads文件夹和upload.php文件中是755 代码如下: if ($_POST && !empty($_FILES)) { $formOk = true; //Assign Variables $path = $_FILES['image']['tmp_name']; $name = $_FILES['image']['name']

当我尝试为用户配置文件制作横幅艺术上传系统时,出现了一个奇怪的问题

我一直在寻找答案,但都没有找到答案

这不是权限问题,我的chmod在uploads文件夹和upload.php文件中是755

代码如下:

if ($_POST && !empty($_FILES)) {
$formOk = true;

//Assign Variables
$path = $_FILES['image']['tmp_name'];
$name = $_FILES['image']['name'];
$size = $_FILES['image']['size'];
$type = $_FILES['image']['type'];

if ($_FILES['image']['error'] || !is_uploaded_file($path)) {
    $formOk = false;
    echo "Error: Error in uploading file. Please try again.";
}

//check file extension
if ($formOk && !in_array($type, array('image/png', 'image/x-png', 'image/jpeg', 'image/pjpeg', 'image/gif'))) {
    $formOk = false;
    echo "Error: Unsupported file extension. Supported extensions are JPG / PNG.";
}
// check for file size.
if ($formOk && filesize($path) > 500000) {
    $formOk = false;
    echo "Error: File size must be less than 3 MB.";
}

if ($formOk) {
    // read file contents
    $content = file_get_contents($path);

    //connect to mysql database
    if ($conn = mysqli_connect('localhost', 'hidden', 'hidden', 'hidden')) {
        $user_id = mysqli_real_escape_string($conn, $_POST['user_id']);
        $username = mysqli_real_escape_string($conn, $_POST['username']);
        $content = mysqli_real_escape_string($conn, $content);
    $sql = "insert into banners (user_id, username, name, size, type, content) values ('{$user_id}','{$username}','{$name}', '{$size}', '{$type}', '{$content}')";

        if (mysqli_query($conn, $sql)) {
            $uploadOk = true;
            $imageId = mysqli_insert_id($conn);
        } else {
            echo "Error: Could not save the data to mysql database. Please try again.";
        }

        mysqli_close($conn);
    } else {
        echo "Error: Could not connect to mysql database. Please try again.";
    }
}
表格为:

        <form method="post" enctype="multipart/form-data" action="<?=$_SERVER['PHP_SELF']?>" >
      <div>
        <h3>Image Upload:</h3>
      </div>
      <div>
        <label>Image</label>
        <img src="<?php print_r($path); ?>"/>
        <?php print_r($_FILES); ?>
        <input type="text" name="user_id" value="<?php echo $user->data["user_id"]; ?>" readonly/>
        <br />
        <input type="text" name="username" value="<?php echo $user->data["username"]; ?>" readonly/>            
        <input type="hidden" name="MAX_FILE_SIZE" value="500000">
        <input type="file" name="image" />
        <input name="submit" type="submit" value="Upload">
      </div>
    </form>     

很简单:您没有将该文件移动到任何地方,如
移动上传的文件()

根据手册中的以下示例:

<?php
// In PHP versions earlier than 4.1.0, $HTTP_POST_FILES should be used instead
// of $_FILES.

$uploaddir = '/var/www/uploads/';
$uploadfile = $uploaddir . basename($_FILES['userfile']['name']);

echo '<pre>';
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
    echo "File is valid, and was successfully uploaded.\n";
} else {
    echo "Possible file upload attack!\n";
}

echo 'Here is some more debugging info:';
print_r($_FILES);

print "</pre>";

很简单:您没有将该文件移动到任何地方,如
移动上传的文件()

根据手册中的以下示例:

<?php
// In PHP versions earlier than 4.1.0, $HTTP_POST_FILES should be used instead
// of $_FILES.

$uploaddir = '/var/www/uploads/';
$uploadfile = $uploaddir . basename($_FILES['userfile']['name']);

echo '<pre>';
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
    echo "File is valid, and was successfully uploaded.\n";
} else {
    echo "Possible file upload attack!\n";
}

echo 'Here is some more debugging info:';
print_r($_FILES);

print "</pre>";

多亏了弗雷德和其他人的评论,我只想发布我是如何做到的:)

//分配变量
$username=$user->data['username'];
#mkdir(“上传/”$username,0755);
$target_dir=“../uploads/$username-”;
$path=$target\u dir。basename($_文件['image']['tmp_名称]];
$name=$target\u dir。basename($\u文件['image']['name'].$user\u id);
$size=$\u文件['image']['size'];
$type=$\u文件['image']['type'];
如果(移动上传的文件($文件['image']['tmp\u name'],$name)){
echo“感谢您上传横幅艺术-文件有效,已成功上传。\n”;
}否则{
echo“可能的文件上载攻击!\n”;
}
所以我也做了,现在它把一个用户名放在上传的图片名称前面

表单基本上是一样的,我现在也做了,这样上传和更新就可以在一个漂亮的盒子里打开:)


再次感谢大家:)

我只想发布我是如何做到的,感谢弗雷德和其他人的评论:)

//分配变量
$username=$user->data['username'];
#mkdir(“上传/”$username,0755);
$target_dir=“../uploads/$username-”;
$path=$target\u dir。basename($_文件['image']['tmp_名称]];
$name=$target\u dir。basename($\u文件['image']['name'].$user\u id);
$size=$\u文件['image']['size'];
$type=$\u文件['image']['type'];
如果(移动上传的文件($文件['image']['tmp\u name'],$name)){
echo“感谢您上传横幅艺术-文件有效,已成功上传。\n”;
}否则{
echo“可能的文件上载攻击!\n”;
}
所以我也做了,现在它把一个用户名放在上传的图片名称前面

表单基本上是一样的,我现在也做了,这样上传和更新就可以在一个漂亮的盒子里打开:)


再次感谢大家:)

没有准确上传“where”吗?在文件夹里?我在任何地方都看不到
移动上传的文件()。“在上传文件夹上”-文件夹声明在哪里?我搜索了两次move_uploaded_file()“一个奇怪的问题”-这里没有“奇怪”的东西,它是“缺少”的东西和你没有“做”的东西,也就是说,“移动”文件到文件夹-现在让我们都等待它。。。。。。。。。。。。。。。。。我应该把这个作为一个答案。但是我感觉太阳在某处开始下山了。看看这个。对不起,大家回复晚了,我不得不出去。我现在将尝试人们建议的移动文件片段。我会发布一个更新,如果这是为什么它没有上传,谢谢所有不上传“哪里”确切?在文件夹里?我在任何地方都看不到
移动上传的文件()。“在上传文件夹上”-文件夹声明在哪里?我搜索了两次move_uploaded_file()“一个奇怪的问题”-这里没有“奇怪”的东西,它是“缺少”的东西和你没有“做”的东西,也就是说,“移动”文件到文件夹-现在让我们都等待它。。。。。。。。。。。。。。。。。我应该把这个作为一个答案。但是我感觉太阳在某处开始下山了。看看这个。对不起,大家回复晚了,我不得不出去。我现在将尝试人们建议的移动文件片段。如果这就是它没有上传的原因,我会发布一个更新,谢谢allok谢谢,我确实看过手册,也看过w3school网站,我甚至从那里复制了代码并对其进行了调整,代码中有这个,但它也没有上传!,但是我会再试一次,如果这不是解决办法的话,我会回复的。好的,是的,文件现在上传了,我只是很恼火,我尝试了这个方法,它一直在做同样的事情,没有上传,现在它突然上传了。谢谢大家,现在它没有添加到数据库中,但是图像正在上传?@TubeNations嗨,对不起,我离开了一会儿,我现在回来了。我很高兴听到这一切都对你有用,Cheers Hanks Fred,我还在学习PHP,我有一个程序员为我的网站做了一些工作,但是现在这个程序员不能再为我编码了,所以现在我必须学习我自己。但是我一直在进步,我只是一个迟钝的学习者:)好的,谢谢,我看了手册,也看了w3school的网站,我甚至从那里复制了代码并对其进行了调整,代码中有这个,但也没有上传!,但是我会再试一次,如果这不是解决办法的话,我会回复的。好的,是的,文件现在上传了,我只是很恼火,我尝试了这个方法,它一直在做同样的事情,没有上传,现在它突然上传了。谢谢大家,现在它没有添加到数据库中,但是图像正在上传?@TubeNations嗨,对不起,我离开了一会儿,我现在回来了。我很高兴听到这一切都对你有用,Cheers Hanks Fred,我还在学习PHP,我有一个程序员为我的网站做了一些工作,但是现在这个程序员不能再为我编码了,所以现在我必须学习我自己。但我一直在进步,我只是一个学习缓慢的人:)