2017-08-29 124 views
0

我正在做一个上传表单,并选择使用jQuery来做到这一点。该文件被上传,但不是所需的文件夹,所以即时通讯不会正确解析从上传表单到流程的数据。jQuery提交表单和php

upload.php的

<script> 
$(document).ready(function() 
{ 

var settings = { 
    url: "upload_process.php", 
    method: "POST", 
    allowedTypes:"jpg,jpeg,png", 
    fileName: "myfile", 
    galleryName: "<?php echo $gallery->folder; ?>", 
    multiple: true, 
    onSuccess:function(files,data,xhr) 
    { 
     $("#status").html("<font color='green'>Upload is success</font>"); 
    }, 
    onError: function(files,status,errMsg) 
    {  
     $("#status").html("<font color='red'>Upload is Failed</font>"); 
    } 
} 

$("#mulitplefileuploader").uploadFile(settings); 

}); 
</script> 

upload_process.php

$galleryName = $_POST["galleryName"]; 
$output_dir = "media/images/".$galleryName."/"; 

if(isset($_FILES["myfile"])) { 
    $ret = array(); 
    $error = $_FILES["myfile"]["error"]; 
    { 
     /* Single File */ 
     if(!is_array($_FILES["myfile"]['name'])) { 
      $fileName = $_FILES["myfile"]["name"]; 
      move_uploaded_file($_FILES["myfile"]["tmp_name"], $output_dir . $_FILES["myfile"]["name"]); 
      $ret[$fileName] = $output_dir.$fileName; 
     /* Multiple files */  
     } else { 
      $fileCount = count($_FILES["myfile"]['name']); 
      for($i=0; $i < $fileCount; $i++) { 
       $fileName = $_FILES["myfile"]["name"][$i]; 
       $ret[$fileName] = $output_dir.$fileName; 
       move_uploaded_file($_FILES["myfile"]["tmp_name"][$i],$output_dir.$fileName); 
      } 
     } 
    } 
    echo json_encode($ret); 
} 

的文件上传至媒体/图像/并不能明白为什么$ galleryName没有设置?

+0

代替'$ gallery-> folder'有一个有效的值,当你运行该代码? –

+0

是的,我在这里打印了提供的代码之上的值,所以对象$ gallery->文件夹中有一个实际值。 – Kingfox

+2

什么是uploadFile()?一些jquery插件?可能是“galleryName”不是该功能所认可的值,也不是发送到服务器。我的猜测是,如果它是一个插件,可能你必须使用另一个键名来添加自定义数据。 –

回答

1

传递给脚本的参数似乎不正确。你没有指定正在使用的确切的jQuery插件,所以下面的例子可能不起作用,但如果是这样,它应该至少给你一个关于在插件文档中寻找什么的好建议

请删除线

galleryName: "<?php echo $gallery->folder; ?>", 

并与线

enctype: "multipart/form-data", // Upload Form enctype. 
formData: { galleryName: "<?php echo $gallery->folder; ?>" }, 
+0

谢谢!这做了诀窍:)如果有人想知道我使用:http://hayageek.com/jquery-multiple-file-upload/ – Kingfox