TypeError无法设置属性'大小'未定义

时间:2015-12-16 21:15:19

标签: javascript jquery file file-upload undefined

尝试在用户上传文件时获取文件的大小。 当用户点击浏览按钮上传文件时, 而是单击取消按钮。 filesize类型抛出一个未定义的错误。

我尝试使用typeof来测试filesize的条件 未定义,但它不起作用。需要帮助才能发现错误。

$('#fileupload-image').change(function() {
    $('#select_file').hide();
    $('#upload_image_button').slideDown('fast');
    var filename = $(this).val();

    if(typeof this.files[0].size == 'undefined')
    {
        this.files[0].size = '';
    }
    else 
    {
        var filesize = this.files[0].size;
    }

3 个答案:

答案 0 :(得分:2)

另一种可能性:

<?php
$placement=290;
$comment=fgets($file);
while ($comment!="") {

    $placement=$placement+5;
    echo'<div style="left:10px; position:relative; top:'.$placement.'px; border:solid; right:10px; height:75px;">';
    $comment=fgets($file);
    echo "<p>".$comment."</p>";
    echo'</div>';
}

$placement2=$placement+5;

if (isset($_SESSION['Username'])) {
    echo'<form method="POST" action="">';
    echo'<input type="text" columns="10" maxlength="500" style="position:relative; left:50px; width:80%; height:50px; resize:none; top:'.$placement2.'px;" name="comment" placeholder="Leave a comment! (max 500 characters)" >';
}

if (isset($_POST['comment']) or isset($_POST['submit'])) {

    if (!empty($_POST['comment'])) {

        $file=fopen('Questions/question'.$_GET['qid'],"r");
        $name=fgets($file);
        $info=fgets($file);
        $user=fgets($file);
        $n=fgets($file);
        $number=1;

        while($number<$n) {
            $comment=fgets($file);
            define("comment".$number,$comment);
            echo $number;
            $number=$number+1;
        }

        define("comment".$number,$_POST['comment']);
        echo trim(constant("comment1"));

        $file=fopen('Questions/question'.$_GET['qid'],"w");
        fwrite($file,$name);
        fwrite($file,$info);
        fwrite($file,$user);
        fwrite($file,$n);
        $number2=1;
        while($number2<$number) {
            $number2=$number2+1;
            fwrite($file, constant("comment".$number2)."\n");
            echo constant("comment".$number2)."\n";
        }
    }
}
?>

答案 1 :(得分:1)

首先,我不认为您确实想要设置this.files[0].size = '';

这是一种可能性,使用try / catch来忘记关于类型检查的所有内容:

var filesize = '';
try {
    filesize = this.files[0].size;
}
catch {}

答案 2 :(得分:0)

使用this.files.length&gt; 0检查而不是检查是否未定义。此外,如果您正在检查是否未定义,则您也不想使用单引号。