php - 使用不上传文件而导致错误

时间:2016-03-24 10:10:36

标签: php

我想要做的是使用php

将图像上传到服务器

这是我的代码

<?php
try {
    $name = isset($_POST['variable2']);
    $file = rand(1000,100000)."-".isset($_FILES['file']['name']);
    $file_name = isset($_FILES['file1']['name']);
    $file_loc = isset($_FILES['file1']['tmp_name']);
    $file_size = isset($_FILES['file1']['size']);
    $file_type = isset($_FILES['file1']['type']);
    $folder="uploads123/";
    $new_size = $file_size/1024;  
    $new_file_name = strtolower($file);
    $final_file=str_replace(' ','-',$new_file_name);
if(move_uploaded_file($file_loc,$folder.$final_file))
    {
        echo "good";
    }else{
        echo "error";
    }
} catch (PDOException $pe) {
                        die("Error occurred:" . $pe->getMessage());
                    }       

?>

这些是我的问题

  1. 为什么输出只是&#34;错误&#34;来自if语句?即使我使用try和catch,它也没有提供有关错误的详细信息。
  2. 即使我给出一个错误的foldername(要上传图像的目录),它只会给我输出像#34;错误&#34;来自if语句。 它没有给出文件夹在服务器上不存在的错误。
  3. 谢谢你。

4 个答案:

答案 0 :(得分:0)

你的html表单是这样的吗?

<form action="target.php" enctype="multipart/form-data">
<!-- Content -->
</form>

答案 1 :(得分:0)

编辑:尝试将PDOException更改为Exception

答案 2 :(得分:0)

文件夹是否存在?检查服务器上的文件夹

的权限

移动文件前的好方法:

$upload_dir = '/uploads123';
if(!is_dir($upload_dir)){
    mkdir($upload_dir, 0777); // you may set your access rule
}

然后你可以尝试将文件移动到这个目录

答案 3 :(得分:0)

isset()返回一个布尔值(true或false)

$file_loc不是有效的文件位置,而是布尔值:

$file_loc = isset($_FILES['file1']['tmp_name']); // $file_loc = true

move_uploaded_file将失败,因为它没有有效的文件可以移动并返回false。由于"error"返回move_uploaded_file

,您的代码将回显false

没有抛出异常,更不用说PDOException了。