Uploadify没有传递变量,Session问题?

时间:2010-08-17 04:45:27

标签: php javascript jquery uploadify

对皮特的爱,我不能让它接受任何变量到我的SQL数据库。如果我把静态信息它工作。我似乎无法通过scriptdata传递任何参数,因为我在顶部使用了智能模板系统,因此更具挑战性。

我试图这样做。

 {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。我正在使用脚本内置的函数来调整缩略图的图像大小和不构建目录。一切正常。它只是不会将任何变量传递给db。

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());

如果可以,请帮忙。我对这件事感到疯狂。感谢。

3 个答案:

答案 0 :(得分:2)

嗯,我不知道这是否是“答案”,但我确实看到了一些问题。

  1. 在您的模板中,您有:

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

    你的智能变量$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'];
    
  3. 我真的怀疑你没有从你认为你得到的表格中获取数据。你怎么知道上传工作正常?您如何知道从表单传递的值?您可能希望从表单中打印出变量,看看您是否真的得到了您期望的结果。

    你从MySQL得到错误吗?或者是数据没有出现?提供更多信息可能会在这里得到更好的答案。

答案 1 :(得分:0)

测试脚本的一种简单方法是以正常形式创建普通文件输入,并指向upload.php。因此,如果出现错误,您将会看到它。

build_tumbnailes是否有可能犯错误?

答案 2 :(得分:-1)

唯一需要删除{literal}的内容。然后它应该工作!