jQuery获取加密的图像源/

时间:2010-07-03 13:03:51

标签: jquery image upload

我有点使用serializeArray解决了表单问题,但是你可能知道它缺乏对输入/文件的支持,所以决定将它与我的序列化数据合并。现在我创建了对象,我用.val()得到了文件的名称。但我不能成像。例如,我想这样做:

        alert(jQuery('.inputBox#pic').attr(src));
        var obj = {'name'   : 'pic',
                   'value'  : jQuery('input#pic').src};

唯一的问题是它不起作用。我无法准备上传图像源。如果没有它,我无法成功发布POST请求。

3 个答案:

答案 0 :(得分:0)

您可以查看jQuery.form,它可以用来表示您的表单。它还supports file input fields

答案 1 :(得分:0)

alert()电话有什么意义?你想用src属性做什么? jQuery(selector).src不执行任何操作,因为您无法以这种方式访问​​img元素或其属性。

如果您想要src的值,请使用:

var imgSrc = $('#pic').attr('src');
// or
var obj = {
    'name' : 'pic',
    'value' : $('#pic').attr('src');
};

我不确定你打算如何以这种方式执行文件上传,但这就是你要做的。不过,我建议略读jQuery documentation,以确保您了解jQuery DOM操作的基础知识。您总是使用.attr()来获取或设置jQuery结果的元素属性。如果要访问实际的元素对象或其属性,则需要使用:

var elPic = $('#pic')[0];
// or
var imgSrc = $('#pic')[0].src;

此外,将ID选择器与类选择器混合通常没有意义,因为ID应该是唯一的。

最后,我假设“.attr(src)”在您的代码中是一个拼写错误,但如果不是,那么您需要刷新JavaScript以便了解变量和字符串文字之间的差异。 String literals需要用单引号或双引号括起来,否则JavaScript认为你传递了一个名为src的变量而不是字符串“src”。

答案 2 :(得分:0)

您不能以这种方式发布文件。

即使您能够获得文件的完整源代码(在某些浏览器中甚至不允许),它也将是您无法访问的本地文件的地址。

将文件发布到服务器的唯一方法是发布上载控件所在的表单。出于安全原因,没有其他方法可以从客户端计算机获取文件。这意味着您必须在页面上发布实际表单,不能发布AJAX帖子。