<?php 
$fileElementName = 'image'; 
echo $_FILES[$fileElementName]['size']; 
?><body> 
<!--上传表单,指定target属性为浮动框架iframe1--> 
<form action="upload.php" method="post" enctype="multipart/form-data" name="upload_img"> 
选择要上传的图片: <input type="file" name="image" id="picfile" name="picfile" onchange="ajaxFileUpload()"> <br/>    // 你用了二个name
<input type="submit" value="上传图片" > 
<div id="loading" > </div> 
</form> 
<!--显示提示信息的层--> 

解决方案 »

  1.   

    ajax是不能上传文件的,因此你的onchange="ajaxFileUpload()"是得不到回应的如果你要用ajax,只能提交了后通过ajax得到
    提交按钮
    <input onclick="startProgress(); return true;" type="submit" value="上传"/> 顺便回答你上一帖某位同志的问题。
    startProgress(); 是通过设定定时发送查询得到结果的。
    php制作实时上传进度就是使用这方法,有兴趣了解的话看 
    http://www.ibm.com/developerworks/cn/opensource/os-php-v525/ 
    PHP V5.2 中的新增功能,第 5 部分: 跟踪文件上传进度如果你要在客户端得到文件大小可以使用<html>
    <head>
    <title></title>
    <script type="text/javascript">  
    function getFileSize(filePath)  
    {  
      var image=new Image();  
      image.dynsrc=filePath;  
      alert(image.fileSize);  
    }
    </head>
    </script>  
    <body>  
    <INPUT TYPE="file" NAME="file" SIZE="30" onchange="getFileSize(this.value)">  
    </body>
    </html>不过要注意这只能在ie下可以得到(ie7应该不行,没测试);firefox是不行的
      

  2.   

    不是没有人帮你看,而是你这个想法不可行;
    要在上传文件之前检查文件大小就只能在客户端完成
    可以考虑使用flash 的FileReference类来实现,但是你必须用flash来作表单提交你的数据(文件上传)
      

  3.   

    to  luojxun:
     ajax是不能上传文件.
     但是ajaxfileupload完成了模拟iframe表单提交的过程,所以可以上传文件.
      另外,你给的哪个链接,也是利用iframe下的表单提交完成的上传,只不过利用了php5.2的新特性而已.to楼主:
       我需要说明的是,调用ajaxFileUpload()函数的时候,其实文件已经被上传到服务器了,尽管你没有接收,如果你再点击提交,就属于二次提交,呵呵.当然,这样做也可以.
      帮你修改一下,其实ajaxfileupload需要返回json格式.
      
    <?php
    //返回文件大小,返回错误为空,让前台显示文件大小
    $fileElementName = 'image'; 
    $size = $_FILES[$fileElementName]['size'];
    echo "{msg: '$size',error: ''}";
    ?>
      
      

  4.   

    “也是利用iframe下的表单提交完成的上传,只不过利用了php5.2的新特性而已.”就是用表单啊,我又没说不是是用表单,上传文件ajax是不能用的。
    <input onclick="startProgress(); return true;" type="submit" value="上传"/> 就是提交表单的按钮,同时调用一个javascript函数而已嘛。“ajaxfileupload完成了模拟iframe表单提交的过程”的说法不准确,确切的说不是模拟而是就是使用表单。
      

  5.   

    因为出于安全考虑,javascript是不能对文件有太多操作的,如果ajax可以传文件或“模拟iframe表单提交的过程”的话那黑客就太好当了。呵呵
      

  6.   


    ajaxfileupload中动态创建iframe和表单,然后表单提交,当然也可以说是表单提交.但因为这个表单不是长期存在的,所以我说了模拟,呵呵.
      

  7.   

    脚本:fileElementId:'picfile',
    与html的<input type="file" name="picfile"/>
    意思是:fileElementId 与 name的名称要相同。。