代码之家  ›  专栏  ›  技术社区  ›  Panama Jack

上传不传递变量,会话问题?

  •  3
  • Panama Jack  · 技术社区  · 14 年前

    看在皮特的份上,我不能让它接受任何变量到我的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());
    

    如果可以请帮忙。我都快疯了。谢谢。

    3 回复  |  直到 14 年前
        1
  •  2
  •   itsjeyd    10 年前

    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. if (!empty($_FILES)) {
          $tempFile = $_FILES['Filedata']['tmp_name'];
      

      用途:

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

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

        2
  •  0
  •   Iznogood    14 年前

    测试脚本的一个简单方法是创建一个普通格式的普通文件输入,其中包含您所指向的操作upload.php . 因此,如果有一个错误,你会看到它然后。

        3
  •  -1
  •   itsjeyd    10 年前

    唯一需要做的就是移除 {literal} . 那就行了!