php - загрузка файлов с использованием uploadify - PullRequest
0 голосов
/ 15 марта 2012

У меня проблемы с uploadify.Всякий раз, когда я использую строку в $ post_id, uploadify загружает только один файл, когда я выбрал 3 файла для загрузки.Но когда я указываю несуществующее значение для $ post_id, такое как переменная сеанса, которая не существует $ _SESSION ['нечто'].Он вставляет все три файла в базу данных.Я думаю, что это может быть ошибка в структуре данных $ post_id.

 if(!empty($_FILES)){
            $post_id = 'aa';
            $name2 = mysql_real_escape_string($_FILES['Filedata']['name']);
            $mime2 = mysql_real_escape_string($_FILES['Filedata']['type']);
            $data2 = mysql_real_escape_string(file_get_contents($_FILES['Filedata']['tmp_name']));
            $size2 = intval($_FILES['Filedata']['size']);



            $db->query("INSERT INTO tbl_files SET post_id='$post_id', filename='$name2', file_data='$data2', mime_type_id='$mime2'");



    }

Я попытался отобразить остальные данные, и кажется, что они хранят только простые строки.Поэтому строка $ post_id также должна работать,

echo $_FILES['Filedata']['name'];

Ответы [ 3 ]

1 голос
/ 15 марта 2012

Попробуйте, это должно работать так, как вы ожидали

 $tblQry = 'INSERT INTO tbl_files ';
 $tblQry .= 'SET         
        post_id                 = "' .$_SESSION['post_id'] . '",
        filename                = "' .$name2. '",
        file_data               = "' .$data2.'",
        mime_type_id            = "' .$mime2.'"';
  $db->query($tblQry);
1 голос
/ 15 марта 2012

Если вы используете сеансы, убедитесь, что вы начали сеанс, т.е. session_start ()

Если вы хотите передать post_id из функции uploadify в файл php, вы можете использовать scriptData, который упоминается вфункция ниже.

<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
    $(document).ready(function(){
    //uploadify function
    $("#file_upload").uploadify({
        'uploader': 'uploadify.swf',
        'script': 'uploadify.php',
        'cancelImg': 'cancel.png',
        'folder': 'photos', //folder where images to be uploaded
        'auto': false, // use for auto upload
        'multi': true,
        'queueSizeLimit': 6,
        'buttonImg': 'images/upload.png',
        'width': '106',
        'height': '33',
        'wmode': 'transparent',
        'method': 'POST',
        'scriptData': {'myid':post_id}, //you can post the id here
        'onQueueFull': function(event, queueSizeLimit) {
            alert("Please don't put anymore files in me! You can upload " + queueSizeLimit + " files at once");
            return false;
        },
        'onComplete': function(event, ID, fileObj, response, data) {
            $("#uploadfiles").append(response+",");
        },
        'onAllComplete': function(response, data) {
            showAll();
        }
    });
</script>

uploadify.php

if (!empty($_FILES)) {
    $post_id = $_POST['myid'];
    include_once "config.php";

    //use this when uploading images into a folder
    $tempFile = $_FILES['Filedata']['tmp_name'];

    $targetPath = $_SERVER['DOCUMENT_ROOT'] . $_REQUEST['folder'] . '/';

    $fna = $_FILES['Filedata']['name'];
    $targetFile =  str_replace('//','/',$targetPath) . $fna;
    move_uploaded_file($tempFile,$targetFile);
    //folder upload end

           $name2 = mysql_real_escape_string($_FILES['Filedata']['name']);
            $mime2 = mysql_real_escape_string($_FILES['Filedata']['type']);
            $data2 = mysql_real_escape_string(file_get_contents($_FILES['Filedata']['tmp_name']));
            $size2 = intval($_FILES['Filedata']['size']);



        $db->query("INSERT INTO tbl_files SET post_id='$post_id', filename='$name2', file_data='$data2', mime_type_id='$mime2'");

}
0 голосов
/ 29 марта 2012

Только что столкнулся с этой проблемой. Flash не использует файлы cookie, установленные в вашем браузере, поэтому вам необходимо передать идентификатор сеанса в сценарий flash как переменную post, а затем установить значение cookie из значения post в сценарии upload.php. См:

jQuery и Uploadify сеанс в php-файле

...