将文件从本地存储上传到具有chrome扩展名的服务器

时间:2016-01-20 10:17:11

标签: javascript jquery google-chrome google-chrome-extension

如何使用chrome Extension将文件从用户本地存储上传到我的网络服务器。我使用了一个类型为file的简单输入标记,当用户点击它时,文件浏览器打开,弹出的扩展名消失,没有上传任何内容。我在Ubuntu 15.04上使用谷歌浏览器。

在点击图标时加载的popup.html中:

<form method="post" action="" id="smsCampForm">

  <input type="text" name="recipent_number" id="recipent_number" placeholder="Recipent numbers separated by commas" class="form-control" required>
  <input type="file" name="fileToUpload" class="form-control" placeholder="Upload Excel File">
  <select name="listToSendSms" id="listToSendSms"></select>
  <textarea name ="message_content" rows="5" maxlength="120"  id="message_content" placeholder="Message maximum 120 characters" class="form-control"  required></textarea>
  <input type="submit" id="smsSubmit" name="submit" value="Send SMS" class="btn btn-success"></input>
</form>

我有一个javascript文件:

$("#smsCampForm").submit(function(event){
document.getElementById("smsSubmit").value = "Sending SMS...";
var formData = new FormData(this);
formData.append("chromeExtensionRequest","1");
$.ajax({
  url : myurl,
  type : 'POST',
  data : formData,
  processData : false,
  contentType : false,
  success : function(data,status){
    $("#smsResponse").html("<div class='alert alert-info'>"+data+"</div>");
    document.getElementById("smsSubmit").value = "Send SMS";
  }
});
event.preventDefault();
});
});

1 个答案:

答案 0 :(得分:0)

由于弹出窗口失去焦点时完全被破坏,因此文件选择器基本上不会触发任何内容 - 所有代码都会被卸载。

无法阻止此行为;因此,您应该将其卸载到其他内容,例如在选项卡或后台页面中加载的单独页面。