php - Uploadify 不传递变量,Session 问题?

标签 php javascript jquery uploadify

看在 pete 的份上,我无法让它接受任何变量到我的 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());

如果可以,请帮忙。我快要被这件事搞疯了。谢谢。

最佳答案

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

  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'];
    

我真的怀疑您没有从您认为获得的表单中获得数据。你怎么知道上传有效?你怎么知道值是从表单传递的?您可能想打印出表单中的变量,看看您是否真的得到了您期望的结果。

你从 MySQL 收到错误了吗?还是只是数据没有显示出来?提供更多信息可能会在此处为您提供更好的答案。

关于php - Uploadify 不传递变量,Session 问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3499387/

相关文章:

jquery - Ajax 表单数据文件上传进度百分比

javascript - 如何选择两个h2之间的所有元素

javascript - 页面清除 - JQuery Mobile

php - 更新 mySql 表中的某些列?

php - 网站截图(HTML5 Canvas /服务)

php - dom完成后如何解析javascript加载的内容

javascript - AngularJS 函数以表单调用自身

java - 如何使用php变量作为java小程序的参数

javascript - 表格行中的 onClick 在 JavaScript/jQuery 中不起作用

javascript - 中止ajax调用javascript