繁体   English   中英

如何将文件对象添加到javascript对象?

[英]how to add a file object into a javascript object?

如何将对象添加到现有的javascript对象? 这是现有javascript对象的示例

   var dataObj = {
       TITLE : adtitle,
       DESC : addesc,
       PRICE : price,
       DISCOUNT : discount,
       CATID : maincatid,
       STATUS : adstatus,
       QUANTITY : quantity  
   };

现在我有了这个文件对象,我想将其添加到上面的对象中。

File { name: "paper.jpg", lastModified: 1445433597723, lastModifiedDate: Date 2015-10-21T13:19:57.723Z, size: 54900, type: "image/jpeg" }

此文件对象是来自文件上传输入类型的值

var image1 = $('#Image1').prop("files")[0];
var image2 = $('#Image2').prop("files")[0];

然后我还需要开除$.post

   $.post("<?php echo Yii::app()->createUrl('/post'); ?>", { jsonData: postdata}, function(response){
            console.log(response);
        });

当我单击一个按钮时,将触发以上所有这些脚本

   $('#postit').click(function(e){
          //all the scripts from above
   });

要将其添加到现有对象,只需在dataObj上定义一个新属性:

var dataObj = {
    ...
};
// other work
dataObj.FILE = $('#Image1').prop("files")[0];

或者,如果可以在定义dataObj时执行dataObj操作,则应执行以下操作:

var dataObj = {
   TITLE : adtitle,
   DESC : addesc,
   PRICE : price,
   DISCOUNT : discount,
   CATID : maincatid,
   STATUS : adstatus,
   QUANTITY : quantity,
   FILE : $('#Image1').prop("files")[0]
};

如果您有多个File对象,则应该将它们作为数组存储在dataObj

dataObj.FILES = $('#Image1').prop("files");

或者也许您一次与他们一起工作,并且需要将它们一个一个地推入dataObj的数组中:

var dataObj = {
   TITLE : adtitle,
   DESC : addesc,
   PRICE : price,
   DISCOUNT : discount,
   CATID : maincatid,
   STATUS : adstatus,
   QUANTITY : quantity,
   FILES : []
};

// Populate the array
$('#Image1').prop("files").forEach(function(file) {
    dataObj.FILES.push(file);
});

不太确定是否能回答您的问题,但最简单的答案是:

dataObj.FILE = image1;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM