包括图像到JS对象和通过Ajax发送

时间:2014-08-26 16:45:06

标签: javascript jquery ajax

我有一个JS对象,它收集表单值并将它们存储到数组中。

var myJSObject = {

    names = [],
    images = [], 
    ....
}

我遇到的问题是我的表单包含图像,我试图将它们存储在JS对象中并通过Ajax发送整个内容。但是我的images`数组总是空的。

更新

抱歉因为我忙于其他项目而拖延。这是我的JS类:

HTML:

<div class="form-section">

    <div class="form-element">
     <input class="upl-img" type="file" />
    </div>

    <div class="form-element">

    </div>
    <div class="form-element">
     <input class="upl-img" type="file" />
    </div>

    </div>

JS:

var formElement = function(options){



    var defaults = {
            elemID : 0,
            elemText : " ",
            elemnOrder : 0,
            mandatory : false,
            elemType : 0,
            elemImage : null,
            formFields : []
        }


        //Some methodes

        this.construct(options);

        }


         var formSection = function(options){

        var defaults = {
            sectionID : null,
            sectionTitle : " ",
            sectionOrder : 0,
            formElements : []
        }

        //Some methodes

        this.construct(options);

        }

所以我的formSection包含一个formElement数组。每个formElement都可以包含最终用户可以上传的图像。

当最终用户点击提交按钮时,函数将创建一个新的formSection对象并注入所有formElements对象。最终的formSection对象需要通过Ajax发布。我试图使用FormData对象来收集文件但没有成功。

谢谢

1 个答案:

答案 0 :(得分:0)

HTMLElement对象是复杂的对象,图像元素实际上是您计算机上的文件,因此如果可能,则意味着将文件上传到服务器,这意味着服务器需要特定于其脚本。我确定你不能发一个简单的帖子或获得http请求。 JSON用于在对象注释样式中传递基本类型。

你可以做的是使用一个插件,例如Uplodify,它包含一个PhP脚本,可以通过提供URI从你的计算机上传文件到服务器。 但这意味着php脚本需要在服务器上进行调优。