2011-09-17 107 views
0

我有麻烦试图用Plupload保存上传文件的文件名。这里是Plupload部分:plupload文件名到数据库问题

echo<<<_END 
    <div id="container"> 
    <div id="filelist">No runtime found.</div> 
    <br /> 
    <a id="pickfiles" href="javascript:;">[Select file]</a> 
    <a id="uploadfiles" href="javascript:;">[Upload it]</a> 
    </div> 

    <script type="text/javascript"> 
    // Custom example logic 
    function $(id) { 
     return document.getElementById(id); 
    } 

    var uploader = new plupload.Uploader({ 
    runtimes : 'gears,html5,flash,silverlight,browserplus',browse_button : 'pickfiles',container: 'container',max_file_size : '1mb', 
    url : 'upload.php', 
    resize : {width : 320, height : 240, quality : 90}, 
    flash_swf_url : 'plupload/js/plupload.flash.swf', 
    silverlight_xap_url : 'plupload/js/plupload.silverlight.xap', 
    filters : [{title : "Image files", extensions : "jpg,jpeg,gif,png"}] 
    }); 

    uploader.bind('Init', function(up, params) { 
    $('filelist').innerHTML = "<div>Current runtime: " + params.runtime + "</div>"; 
    }); 

    uploader.bind('FilesAdded', function(up, files) { 
    for (var i in files) { 
     $('filelist').innerHTML += '<div id="' + files[i].id + '">' + files[i].name  + ' (' + plupload.formatSize(files[i].size) + ') <b></b></div>'; 
    }}); 

    uploader.bind('UploadProgress', function(up, file) { 
    $(file.id).getElementsByTagName('b')[0].innerHTML = '<span>' + file.percent + "% </span>"; 
    }); 

    $('uploadfiles').onclick = function() { 
    uploader.start(); 
    return false; 
    }; 

    uploader.init(); 
</script> 
_END; 

但我不知道如何插入文件名到我的数据库:

$post_img = file?? 

$topicid = mysql_insert_id(); 
$sql = "INSERT INTO 
    posts(post_content, 
    post_date, 
    post_topic, 
    post_by, 
    post_img 
) 
    VALUES 
    (
    '" . mysql_real_escape_string($_POST['post_content']) . "', 
    NOW(), 
    " . $topicid . ", 
    " . $_SESSION['userid'] . ", 
    " . $post_img . ")"; 
    $result = mysql_query($sql); 

    if(!$result) { 
    //something went wrong, display the error 
    echo 'An error occured while inserting your post. Please try again later.<br /><br />' . mysql_error(); 
    $sql = "ROLLBACK;"; 
    $result = mysql_query($sql); 
    } 

我得到的错误“,而将你的文章时出错。请稍后再试'

+0

什么mysql_error()或mysql_errno更好()返回? –

+0

列计数与第1行的值计数不匹配。我将值更改为$ _FILES ['$ fileName'],但仍然是同样的问题。谢谢 – cbarg

+0

但无论如何,如果我从Insert Into中取出post_img,请创建一个变量$ post_img = $ _FILES ['$ fileName'];并在稍后回显$ post_img,它不会给出任何输出: -/ – cbarg

回答

2

我把mysql查询放到upload.php文件中。 我不太确定该文件放在哪里,但我猜想它在“检查文件是否已上传”部分中,位于upload.php文件的末尾。

if (!$chunks || $chunk == $chunks - 1) { 

// Strip the temp .part suffix off 
rename("{$filePath}.part", $filePath); 

    //your mysql query here************************** 
} 

我认为它可能在这里的原因是因为它检查上传文件是否有剩余的块。如果它没有任何离开,你在if声明中。 upload.php在每个上传的文件上运行foreach,因此您只需将$fileName放入数据库即可。

它适用于我。希望它有帮助

+0

它帮了我:) – Naeem

0

muchos gracias Mike。它帮助我

if (!$chunks || $chunk == $chunks - 1) {

作品比

if($chunk==1){