Загрузить, не передавая переменные, проблема сеанса?


Из любви к Питу я не могу заставить его принимать какие-либо переменные в мою базу данных SQL. Если я помещу статическую информацию, это сработает. Кажется, я не могу передать какие-либо параметры с помощью scriptdata, и это усложняет задачу, потому что я использую систему шаблонов smarty сверху.

Я пытался это сделать.

 {literal}
<script type="text/javascript">
jQuery(document).ready(function() {
    jQuery("#fileUpload").uploadify({

        'scriptData'     :{'alb_id': '{/literal}$alb_id{literal}','mem_id': '{/literal}$info.mem_id{literal}'},
        'uploader': '/ajax/upload/uploadify.swf',
        'cancelImg': '/ajax/upload/cancel.png',
        'script': '/ajax/upload/uploader.php',
        'folder': 'photos',
        'multi': true,
        'displayData': 'speed',
        'fileDesc'  : 'Image Files',
        'fileExt': '*.jpg;*.jpeg;',
        'simUploadLimit': 200,
        'width'          : 130,
        'queueID'        : 'fileQueue',
        'buttonImg': '/themes/mytheme/gfx/buttons/but_browse.gif'       
    });

});
</script>
{/literal}

В моем файле шаблона. Часть загрузки работает нормально. Только не mysql. Я использую встроенную в скрипт функцию для изменения размера изображений для миниатюр, а что нет, и создания каталога. Все это работает. Он просто не будет передавать никакие переменные в базу данных.

include_once("../../includes/config/config.inc.php");
    //load libraries
include(DOC_ROOT."/libraries.php");


$conn = mysql_connect(SQL_HOST, SQL_USER, SQL_PASS,1);
mysql_select_db(SQL_DB,$conn);

$alb_id = $_REQUEST['alb_id'];
$mem_id = $_REQUEST['mem_id'];  


if (!empty($_FILES)) {
    $tempFile = $_FILES['Filedata']['tmp_name'];

        $extension = ".jpeg";
        $photo = build_thumbnailes($tempFile,$extension);

        $sql ="INSERT INTO `photos`(`mem_id`, `photo`, `photo_med`, `photo_small`, `approved`,`posted`, `upload_date`) 
        VALUES 
        ('$alb_id', '".$photo["ex"]."', '".$photo["med"]."','".$photo["small"]."' , '1', time(), time())";
        mysql_query($sql) or die(mysql_error());

Пожалуйста, помогите, если можете. Я схожу с ума от этой штуки. Спасибо.

Author: Panama Jack, 2010-08-17

3 answers

Ну, я не знаю, является ли это "ответом", но я вижу пару проблем.

  1. В вашем шаблоне у вас есть:

    'scriptData': {'alb_id': '{/literal}$alb_id{literal}',
                   'mem_id': '{/literal}$info.mem_id{literal}'},
    

    Ваши переменные smarty $alb_id и $info.mem_id будут передаваться буквально (вместо их значений). Вам нужно:

    'scriptData': {'alb_id': '{/literal}{ $alb_id }{literal}',
                   'mem_id': '{/literal}{ $info.mem_id }{literal}'},
    
  2. Во-вторых, вы должны проверить, действительно ли ваш файл является загруженным файлом в вашем PHP. Вместо:

    if (!empty($_FILES)) {
        $tempFile = $_FILES['Filedata']['tmp_name'];
    

    Использование:

    if (is_uploaded_file($_FILES['Filedata']['tmp_name'])) {
        $tempFile = $_FILES['Filedata']['tmp_name'];
    

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

Вы получаете сообщение об ошибке от MySQL? Или дело в том, что данные просто не отображаются? Предоставление дополнительной информации может дать вам лучшие ответы здесь.

 2
Author: Cfreak, 2014-04-19 23:10:48

Простой способ проверить ваш скрипт - создать обычный файл ввода в обычной форме, на действие которого вы укажете upload.php . Так что, если есть ошибка, вы увидите ее тогда.

Возможно ли, что build_tumbnailes выдает ошибку?

 0
Author: Iznogood, 2010-08-17 04:59:09

Единственное, что необходимо, - это удалить {literal}. Тогда это должно сработать!

 -1
Author: user3552783, 2014-04-19 22:50:50