无法使用带有Uploadify的表单传递数据

时间:2012-12-08 14:05:34

标签: javascript jquery uploadify

对不起,如果我是多余的,但我已经尝试了我在这里和谷歌上找到的每一个例子:D

我想要做的是上传图片,输入框上输入的内容将发送到我的插件所在的uplodify.php。我的问题是,图片的名称已保存到mysql但文本字段上输入的内容不会。

你们能让我知道发生了什么吗?

这是我的代码的一部分

'multi'                 : true,
'auto'                  : false,
'onUploadStart' : function(file) {
$("#file_upload").uploadify('settings', 'formData', {'galeria':  $('#galeria').val()});
}, 


<form id="form1" name="form1" action="">
  <p>
    <input type="file" id="file_upload" name="file_upload" />
    <br>
    <br>
    Galeria<br>
    <label>
      <input type="text" name="galeria" id="galeria">

uplodify.php

    $galeria = $_POST['galeria'];
    $regiao = $_POST['regiao'];

if (!empty($_FILES)) {
    $img      = $_FILES['Filedata']['name'];
    $ext      = substr($img, -4);
    $img      = md5($img).date("dmYHis").$ext;  
    $tempFile = $_FILES['Filedata']['tmp_name'];
     $targetPath = $_SERVER['DOCUMENT_ROOT'] . $_REQUEST['folder'] . '/';
    $targetFile =  str_replace('//','/',$targetPath) . $img;


    $adicionar = mysql_query ("INSERT INTO imagens (foto, galeria, regiao) VALUES('$img','$galeria','$regiao')");

    // $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 str_replace($_SERVER['DOCUMENT_ROOT'],'',$targetFile);
    // } else {
    //  echo 'Invalid file type.';
    // }
}

2 个答案:

答案 0 :(得分:0)

尝试更改onUploadStart方法以扩展uploadify formData属性,如下所示:

onUploadStart: function ( file ) {
  var $fileUpload = $('#file_upload')
      , formData = $fileUpload.uploadify('settings', 'formData')
      , newFormData = $.extend({}, formData, { galeria: $('#galeria').val() });

      $fileUpload.uploadify('settings', 'formData', newFormData);
}

答案 1 :(得分:0)

我终于设法让它发挥作用

这是我使用的代码

    $('#file_upload').attr('file_upload', response).show();
$.post("insert2.php",{name: fileObj.name, galeria: $("#galeria").val(), regiao: $("#regiao").val()}, function(info) {
alert(info); // alert UPLOADED FILE NAME
        });
    }
});

现在我有一个不同的问题大声笑总是表现出来......

由于在dabase上保存文件的代码是在insert2.php和重命名uploadify.php中的图片的代码。如何在数据库中保存新名称而不是我上传的文件名?

另一个问题....是一种基于数据库上的图片生成缩略图的方法吗?