Uploadify является временным? невозможно перечислить недавно загруженные файлы в базу данных! - PullRequest
0 голосов
/ 29 января 2010

Я пытался работать сценарий загрузки, но безрезультатно ... он правильно загружает все файлы в назначенную папку, но никакие детали загрузки не добавляются через mysql

есть идеи, где я могу ошибаться? пожалуйста, помогите.

manage.php

  <script type="text/javascript"> 
    $(document).ready(function() {
        $("#uploadify").uploadify({
            'uploader'       : 'resources/uploadify.swf',
            'script'         : 'resources/uploadify.php',
            'folder'         : 'files',
            'queueID'        : 'fileQueue',
            'auto'           : true,
            'onAllComplete'  : function(){ alert("Thank you. All files have been uploaded successfully."); },
            'multi'          : true
        });
    });
    </script>
  <form method="post" action="<?php echo $_SERVER['PHP_SELF'] . '?id=' . intval($client_id); ?>">
    <p>
         <b>File Upload</b></p>
<div id="fileQueue"></div>
<input type="file" name="uploadify" id="uploadify" />
<p><a href="javascript:jQuery('#uploadify').uploadifyClearQueue()" class="form">Cancel all uploads</a></p>
<a href="#viewFiles" class="form" rel="facebox">View files</a>

<div id="viewFiles" style="display:none;" rel="facebox"> 
                   <div style="width:300px; height: 300px;"></div>
</div>

    </p>
</form>

uploadify.php

<?php require_once('../Connections/speedycms.php); 

if (!empty($_FILES)) {
    $tempFile = $_FILES['Filedata']['tmp_name'];
    $targetPath = $_SERVER['DOCUMENT_ROOT'] . $_REQUEST['folder'] . '/';
    $targetFile =  str_replace('//','/',$targetPath) . $_FILES['Filedata']['name'];

    $fileName = $_FILES['uploadify']['name'];
    $fileSize = $_FILES['uploadify']['size'];
    $fileType = $_FILES['uploadify']['type'];

        $client_id = mysql_real_escape_string($_GET['id']);

    // $fileTypes  = str_replace('*.','',$_REQUEST['fileext']);
    // $fileTypes  = str_replace(';','|',$fileTypes);
    // $typesArray = split('\|',$fileTypes);
    // $fileParts  = pathinfo($_FILES['Filedata']['name']);

    // if (in_array($fileParts['extension'],$typesArray)) {
        // Uncomment the following line if you want to make the directory if it doesn't exist
        // mkdir(str_replace('//','/',$targetPath), 0755, true);

        move_uploaded_file($tempFile,$targetFile);
        echo "1";

        mysql_query("
INSERT INTO tbl_accidentfiles SET client_id='$client_id', name='${fileName}', path='${targetFile}', size='$fileSize', content_type='${content_type}'");

    // } else {


//  echo 'Invalid file type.';
        // }

    }

?>

большое спасибо!

Ответы [ 4 ]

1 голос
/ 09 февраля 2010

Flash-скрипт вызывает файл uploadify.php, а не форму на странице manage.php.

Попробуйте изменить:

$fileName = $_FILES['uploadify']['name'];
$fileSize = $_FILES['uploadify']['size'];
$fileType = $_FILES['uploadify']['type'];

до:

$fileName = $_FILES['Filedata']['name'];
$fileSize = $_FILES['Filedata']['size'];
$fileType = $_FILES['Filedata']['type'];
0 голосов
/ 07 августа 2010

Спасибо за пост. На самом деле мой клиент должен загрузить количество изображений для туристического пакета, и я хотел сохранить их в базе данных. Для этого я должен использовать несколько загрузчиков. поэтому я решил создать отдельную таблицу для изображений, связанных общим идентификатором пакета. У меня появилась идея вставить таблицу с изображением и соответствующим полем id

Чем ты

0 голосов
/ 31 января 2010

Ваш код содержит ошибку, так как в uploadify.php у вас есть:

$client_id = mysql_real_escape_string($_GET['id']);

Но вы не передали его в коде загрузки js. Для этого используйте этот код:

$("#uploadify").uploadify({
  'uploader'       : 'resources/uploadify.swf',
  'script'         : 'resources/uploadify.php',
  'folder'         : 'files',
  'queueID'        : 'fileQueue',
  'auto'           : true,
  'onAllComplete'  : function(){ alert("Thank you. All files have been uploaded successfully."); },
  'multi'          : true,
  scriptData       : {'id': '<?php echo intval($client_id); ?>'}
});

В последней загрузке метод по умолчанию для scripData - POST. Итак, используйте $_POST['id'] в вашем uploadify.php файле или измените метод в uploadify js:

'method' : 'GET'

Смотрите здесь для более полного параметра. Надеюсь, теперь это сработало.

Последнее примечание, в uploadify.php вы можете сделать это вместо:

$client_id = intval($_GET['id']);

, чтобы убедиться, что client_id содержит допустимое значение. Это лучше, чем просто избежать этого, потому что вы должны убедиться, что оно содержит только целое число, а не другое значение.

0 голосов
/ 29 января 2010

Может быть ошибка php? Первая строка ...

<?php require_once('../Connections/speedycms.php); 

(отсутствует одинарная кавычка), должно быть ...

<?php require_once('../Connections/speedycms.php'); 

Это объясняет, почему mysql_query не работает, так как соединение с базой данных не будет установлено

...