zoukankan      html  css  js  c++  java
  • ajax上传文件(使用ajaxfileupload)

    昨天弄了一下午,可谓的错误接连不断,心情莫名烦燥了,心理素质有待提高。。。做此功能:利用ajax上传文件,处理文件,返回文件名,再和其它域一块提交

    光ajaxfileupload.js插件就找了好几个,老报错,总感觉是插件下载的不对。。

    html部分:

    <html>
        <head>
            <title>Ajax File Uploader Plugin For Jquery</title>
            <meta http-equiv="Content-Type" content="text/html"; charset="utf-8"> 
    <link href="ajaxfileupload.css" type="text/css" rel="stylesheet">
        <script type="text/javascript" src="jquery.js"></script>
        <script type="text/javascript" src="ajaxfileupload.js"></script>
        <script type="text/javascript">
        function ajaxFileUpload()
        {
            $.ajaxFileUpload
            (
                {
                    url:'doajaxfileupload.php',
                    secureuri:false,
                    fileElementId:'fileToUpload',
                    dataType: 'json',
                    data:{name:'logan', id:'id'},
                    success: function (data, status)
                    {
                        if(typeof(data.error) != 'undefined')
                        {
                            if(data.error != '')
                            {
                                alert(data.error);
                            }else
                            {
                                
                                $("#file_name").val(data.msg);
                                alert(data.msg);
                            }
                        }
                    },
                    error: function (data, status, e)
                    {
                        alert(e);
                    }
                }
            )
            
            return false;
    
        }
        </script>    
        </head>
        <body>
    <div id="wrapper">
        <div id="content">
            <h1>Ajax File Upload Demo</h1>      
            <img id="loading" src="loading.gif" style="display:none;">
            <form name="form" action="" method="POST" enctype="multipart/form-data">
                    <input type="text" name="username" />
                    <input id="fileToUpload" type="file" size="45" name="fileToUpload" class="input">
                    <button class="button" id="buttonUpload" onclick="return ajaxFileUpload();">Upload</button>
                    <input type="hidden" id="file_name" name="file_name" value="" />
            </form>        
        </div>
        </body>
    </html>
    doajaxfileupload.php:
    <?php    
        $error = "";
        $msg = "";
        $fileElementName = 'fileToUpload';
        $filename=$_FILES['fileToUpload']['name'];
        $arr=explode('.',$filename);
        $last='.'.array_pop($arr);
        $new_name=uniqid().time().$last;    
        if(!empty($_FILES[$fileElementName]['error']))
        {
            switch($_FILES[$fileElementName]['error'])
            {
    
                case '1':
                    $error = 'The uploaded file exceeds the upload_max_filesize directive in php.ini';
                    break;
                case '2':
                    $error = 'The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form';
                    break;
                case '3':
                    $error = 'The uploaded file was only partially uploaded';
                    break;
                case '4':
                    $error = 'No file was uploaded.';
                    break;
    
                case '6':
                    $error = 'Missing a temporary folder';
                    break;
                case '7':
                    $error = 'Failed to write file to disk';
                    break;
                case '8':
                    $error = 'File upload stopped by extension';
                    break;
                case '999':
                default:
                    $error = 'No error code avaiable';
            }
            
        }elseif(empty($_FILES['fileToUpload']['tmp_name']) || $_FILES['fileToUpload']['tmp_name'] == 'none')
        {
            $error = 'No file was uploaded..';
        }elseif(!move_uploaded_file($_FILES['fileToUpload']['tmp_name'],'./test/'.$new_name)){
            //file_put_contents('a.txt',$_FILES['fileToUpload']['tmp_name']);
            $error='移动不成功';    
        }else {
                //$msg .= " File Name: " . $_FILES['fileToUpload']['name'] . ", ";
                //$msg .= " File Size: " . @filesize($_FILES['fileToUpload']['tmp_name']);
                $msg=$new_name;
                @unlink($_FILES['fileToUpload']);        
        }        
        echo "{";
        echo                "error: '" . $error . "',\n";
        echo                "msg: '" . $msg . "'\n";
        echo "}";
    ?>

    关于报错的一些问题:

    jQuery.handleError is not a function 经测试handlerError只在jquery-1.4.2之前的版本中存在,jquery-1.6 和1.7中都没有这个函数了,这个比较蛋疼。。

  • 相关阅读:
    mysql关联查询
    MySQL数据库面试题(转发来自https://thinkwon.blog.csdn.net/article/details/104778621)
    iview + vue + thinphp5.1 源码
    <!--标签嵌套规则-->
    PHP的基本变量检测方法
    PHP的八种变量
    php变量命名规范
    C++11新特性-常用
    算法设计-DP常见问题及解题技巧
    Web开发-概述
  • 原文地址:https://www.cnblogs.com/houweijian/p/3047685.html
Copyright © 2011-2022 走看看