看了下载的demo,前台的东西清楚了,就是在url指向了upload.php,这个文件中的代码我不太懂,本人前端,菜鸟一只,希望大家帮我解决下问题

解决方案 »

  1.   

    <!DOCTYPE html>
    <html xmlns="http://www.w3.org/1999/xhtml" dir="ltr">
    <head>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8"/><title>Plupload - Custom example</title><!-- production -->
    <script type="text/javascript" src="../js/plupload.full.min.js"></script>
    <!-- debug 
    <script type="text/javascript" src="../js/moxie.js"></script>
    <script type="text/javascript" src="../js/plupload.dev.js"></script>
    --></head>
    <body style="font: 13px Verdana; background: #eee; color: #333"><h1>Custom example</h1><p>Shows you how to use the core plupload API.</p><div id="filelist">Your browser doesn't have Flash, Silverlight or HTML5 support.</div>
    <br /><div id="container">
        <a id="pickfiles" href="javascript:;">[Select files]</a> 
        <a id="uploadfiles" href="javascript:;">[Upload files]</a>
    </div><br />
    <pre id="console"></pre>
    <script type="text/javascript">
    // Custom example logicvar uploader = new plupload.Uploader({
    runtimes : 'html5,flash,silverlight,html4',
    browse_button : 'pickfiles', // you can pass an id...
    container: document.getElementById('container'), // ... or DOM Element itself
    url : 'upload.php',
    flash_swf_url : '../js/Moxie.swf',
    silverlight_xap_url : '../js/Moxie.xap',

    filters : {
    max_file_size : '10mb',
    mime_types: [
    {title : "Image files", extensions : "jpg,gif,png,txt"},
    {title : "Zip files", extensions : "zip"}
    ]
    }, init: {
    PostInit: function() {
    document.getElementById('filelist').innerHTML = ''; document.getElementById('uploadfiles').onclick = function() {
    uploader.start();
    return false;
    };
    }, FilesAdded: function(up, files) {
    plupload.each(files, function(file) {
    document.getElementById('filelist').innerHTML += '<div id="' + file.id + '">' + file.name + ' (' + plupload.formatSize(file.size) + ') <b></b></div>';
    });
    }, UploadProgress: function(up, file) {
    document.getElementById(file.id).getElementsByTagName('b')[0].innerHTML = '<span>' + file.percent + "%</span>";
    }, Error: function(up, err) {
    document.getElementById('console').appendChild(document.createTextNode("\nError #" + err.code + ": " + err.message));
    }
    }
    });uploader.init();</script>
    </body>
    </html>这是前台的
      

  2.   

    <?php
    /**
     * upload.php
     *
     * Copyright 2013, Moxiecode Systems AB
     * Released under GPL License.
     *
     * License: http://www.plupload.com/license
     * Contributing: http://www.plupload.com/contributing
     */#!! IMPORTANT: 
    #!! this file is just an example, it doesn't incorporate any security checks and 
    #!! is not recommended to be used in production environment as it is. Be sure to 
    #!! revise it and customize to your needs.
    // Make sure file is not cached (as it happens for example on iOS devices)
    header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
    header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
    header("Cache-Control: no-store, no-cache, must-revalidate");
    header("Cache-Control: post-check=0, pre-check=0", false);
    header("Pragma: no-cache");/* 
    // Support CORS
    header("Access-Control-Allow-Origin: *");
    // other CORS headers if any...
    if ($_SERVER['REQUEST_METHOD'] == 'OPTIONS') {
    exit; // finish preflight CORS requests here
    }
    */// 5 minutes execution time
    @set_time_limit(5 * 60);// Uncomment this one to fake upload time
    // usleep(5000);// Settings
    $targetDir = ini_get("upload_tmp_dir") . DIRECTORY_SEPARATOR . "plupload";
    //$targetDir = 'uploads';
    $cleanupTargetDir = true; // Remove old files
    $maxFileAge = 5 * 3600; // Temp file age in seconds
    // Create target dir
    if (!file_exists($targetDir)) {
    @mkdir($targetDir);
    }// Get a file name
    if (isset($_REQUEST["name"])) {
    $fileName = $_REQUEST["name"];
    } elseif (!empty($_FILES)) {
    $fileName = $_FILES["file"]["name"];
    } else {
    $fileName = uniqid("file_");
    }$filePath = $targetDir . DIRECTORY_SEPARATOR . $fileName;// Chunking might be enabled
    $chunk = isset($_REQUEST["chunk"]) ? intval($_REQUEST["chunk"]) : 0;
    $chunks = isset($_REQUEST["chunks"]) ? intval($_REQUEST["chunks"]) : 0;
    // Remove old temp files
    if ($cleanupTargetDir) {
    if (!is_dir($targetDir) || !$dir = opendir($targetDir)) {
    die('{"jsonrpc" : "2.0", "error" : {"code": 100, "message": "Failed to open temp directory."}, "id" : "id"}');
    } while (($file = readdir($dir)) !== false) {
    $tmpfilePath = $targetDir . DIRECTORY_SEPARATOR . $file; // If temp file is current file proceed to the next
    if ($tmpfilePath == "{$filePath}.part") {
    continue;
    } // Remove temp file if it is older than the max age and is not the current file
    if (preg_match('/\.part$/', $file) && (filemtime($tmpfilePath) < time() - $maxFileAge)) {
    @unlink($tmpfilePath);
    }
    }
    closedir($dir);
    }
    // Open temp file
    if (!$out = @fopen("{$filePath}.part", $chunks ? "ab" : "wb")) {
    die('{"jsonrpc" : "2.0", "error" : {"code": 102, "message": "Failed to open output stream."}, "id" : "id"}');
    }if (!empty($_FILES)) {
    if ($_FILES["file"]["error"] || !is_uploaded_file($_FILES["file"]["tmp_name"])) {
    die('{"jsonrpc" : "2.0", "error" : {"code": 103, "message": "Failed to move uploaded file."}, "id" : "id"}');
    } // Read binary input stream and append it to temp file
    if (!$in = @fopen($_FILES["file"]["tmp_name"], "rb")) {
    die('{"jsonrpc" : "2.0", "error" : {"code": 101, "message": "Failed to open input stream."}, "id" : "id"}');
    }
    } else {
    if (!$in = @fopen("php://input", "rb")) {
    die('{"jsonrpc" : "2.0", "error" : {"code": 101, "message": "Failed to open input stream."}, "id" : "id"}');
    }
    }while ($buff = fread($in, 4096)) {
    fwrite($out, $buff);
    }@fclose($out);
    @fclose($in);// Check if file has been uploaded
    if (!$chunks || $chunk == $chunks - 1) {
    // Strip the temp .part suffix off 
    rename("{$filePath}.part", $filePath);
    }// Return Success JSON-RPC response
    die('{"jsonrpc" : "2.0", "result" : null, "id" : "id"}');
    这是后台的
      

  3.   

    修改upload.php中的
    $targetDir属性
    如:$targetDir = "myplupload";
     这样的话就会上传到你的项目文件夹下的myplupload文件夹里面去了
      

  4.   

    我想问一下,为啥比较大的文件上传,他从$_FILES里面拿不到值,因为上传的时间稍微久一点,最后生成文件的时候他的文件名就是最近文件名,这是什么问题呢,请教大神指点一下