如何将上传的图像附加到表单然后发布到服务器

时间:2014-11-12 21:56:46

标签: javascript

我正在尝试在我的网站上传图片,然后将它们发回我的服务器。

要上传我使用此处插件的图片: http://jasny.github.io/bootstrap/javascript/#fileinput

所以我在这里找到了javascript和css文件:

cdnjs.cloudflare.com/ajax/libs/jasny-bootstrap/3.1.3/css/jasny-bootstrap.min.css

cdnjs.cloudflare.com/ajax/libs/jasny-bootstrap/3.1.3/js/jasny-bootstrap.min.js

在我的html页面上,我包括以下内容:

  <div class="fileinput fileinput-new" data-provides="fileinput">
      <div class="fileinput-new thumbnail" style="width: 100px; height: 100px;">
        <img data-src="holder.js/100%x100%" alt="...">
      </div>
      <div class="fileinput-preview fileinput-exists thumbnail" style="max-width: 200px; max-height: 150px;"></div>
      <div>
          <span style="background-color: #68C3A3" class="btn btn-success btn-file">
              <span class="fileinput-new">Select Artist Image</span><span style="background-color: #68C3A3" class="fileinput-exists">Change</span>
              <input id="inPutArtistImage" type="file"  multiple>
          </span>
        <a href="#" class="btn btn-danger fileinput-exists" data-dismiss="fileinput">Remove</a>
      </div>
    </div>

选择和删除图像效果很好。

现在有了一个单独的按钮,我试图将所选文件附加到Form DATA。

$scope.UpdateChannelImages = function() {
  var formData, thumbnail;
  formData = new FormData();
  if ($('#inPutArtistImage')[0].files && $('#inPutArtistImage')[0].files.length > 0) {
    thumbnail = $('#inPutArtistImage')[0].files[0];
    formData.append('inPutArtistImage', thumbnail, 'Artist' + thumbnail.name); 

但是我根本无法将文件附加到表单数据中:

我收到此错误: 无法读取未定义的属性“文件”

这是抛出错误的行:  if($('#inPutArtistImage')[0] .files&amp;&amp; $('#inPutArtistImage')[0] .files.length&gt; 0){

我需要帮助将上传的图像附加到表单数据

1 个答案:

答案 0 :(得分:0)

要解决此错误,我将name属性添加到input元素:

感谢这篇文章: Jasny Bootstrap File Upload Control