图像 - 上传无响应,无法访问$ _FILES

时间:2014-03-14 08:48:18

标签: php html mysql image file

这是我的文件上传脚本,我收到以下错误

Notice: Undefined index: fupload in C:\Users\Tuskar\Desktop\Projekt\htdocs\Project IT-Space\Profile\edit_profile_parse.php on line 8

但是根据应该没有错误,因为我确定了索引。似乎我没有访问$ _FILES数组,因为在我得到这个错误之前我已经得到其他类似的错误或者程序完全通过if并直接转到else(文件未选中)

我知道脚本是原始的,几乎没有安全性,但我只是希望它在添加其他功能(如最大文件大小或文件限制......)之前先工作... :(

这是我正在使用的代码。

Upload Picture
<form action="edit_profile_parse.php" method="get" enctype="multipart/form-data" >
<input type="hidden" name="MAX_FILE_SIZE" value="999999999"> </input>
<input type="file" name="fupload"> </input>
<input type="submit" name="submit" value="Upload"> </input>
</form>

这是处理表单的php

if (isset( $_GET['submit'] ))
{
if (isset($_FILES['fupload'] ))
{
echo "name: ".$_FILES['fupload']['name']." <br> ";
echo "size: ".$_FILES['fupload']['sizw']." <br> ";
echo "type: ".$_FILES['fupload']['type']." <br> ";

    if ($_FILES['fupload']['type'] == "image/gif")
    {
        $source = $_FILES['fupload']['tmp_name'];
        $target = "images/" .$_FILES['fupload']['name'];
        move_uploaded_file($source, $target) or die ("Error: " .mysql_error());
        $size = getImageSize($target);

        $imgstr = "<img src=\" '".$target."' \">";
        echo $imgstr;
    }
    else
    {
    echo "Problem uploading the file ... ";
    }
}   
else
{
echo "No file chosen !! ";
}
}
else
{
echo "Button not clicked ";
}

4 个答案:

答案 0 :(得分:3)

你应该使用form方法来POST而不是get。

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

答案 1 :(得分:2)

确保您的FORM标记有method =“POST”。 GET请求不支持多部分/表单数据上传。

答案 2 :(得分:2)

我希望这有效: 形式:

<form action="edit_profile_parse.php" method="post" enctype="multipart/form-data" >
    <input type="hidden" name="MAX_FILE_SIZE" value="999999999"> </input>
    <input type="file" name="fupload"> </input>
    <input type="submit" name="submit" value="Upload"> </input>
</form>

php文件:

<?php
if($_POST) {
    $max_size = mysql_real_escape_string(strip_tags($_POST['MAX_FILE_SIZE']));
    $file = $_FILES['fupload']['name'];

    if(isset($max_size) && !empty($max_size) && !empty($file)) {
        $file_type = $_FILES['fupload']['type'];
        $tmp = $_FILES['fupload']['tmp_name'];
        $file_size = $_FILES['fupload']['size'];

        $allowed_type = array('image/png', 'image/jpg', 'image/jpeg', 'image/gif');

        if(in_array($file_type, $allowed_type)) {
            if($file_size < $max_size) {
                $path = 'images/'.$file;

                move_uploaded_file($tmp, $path);
                //if you want to store the file in a db use the $path in the query
            } else {
                echo 'File size: '.$file_size.' is too big';
            }
        } else {
            echo 'File type: '.$file_type.' is not allowed';
        }
    } else {
        echo 'There are empty fields';
    }
}
?>

答案 3 :(得分:-1)

上传图片

<form action="edit_profile_parse.php" method="POST" enctype="multipart/form-data" >
<input type="hidden" name="MAX_FILE_SIZE" value="999999999"> </input>
<input type="file" name="fupload"> </input>
<input type="submit" name="submit" value="Upload"> </input>
</form>  

PHP文件

 <?php 
    if (isset( $_POST['submit'] ))
    {
    if (isset($_FILES['fupload'] ))
    {
    echo "name: ".$_FILES['fupload']['name']." <br> ";
    echo "size: ".$_FILES['fupload']['size']." <br> ";
    echo "type: ".$_FILES['fupload']['type']." <br> ";

        if ($_FILES['fupload']['type'] == "image/gif")
        {
            $source = $_FILES['fupload']['tmp_name'];
            $target = "images/" .$_FILES['fupload']['name'];
            move_uploaded_file($source, $target) or die ("Error: " .mysql_error());
            $size = getImageSize($target);

            $imgstr = "<img src=\" '".$target."' \">";
            echo $imgstr;
        }
        else
        {
        echo "Problem uploading the file ... ";
        }
    }   
    else
    {
    echo "No file chosen !! ";
    }
    }
    else
    {
    echo "Button not clicked ";
    }
    ?>