javascript - 使用 chrome 扩展将文件从本地存储上传到服务器

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

如何使用 Chrome 扩展将文件从用户本地存储上传到我的网络服务器。我使用了一个简单的文件类型输入标签,当用户单击它时,文件浏览器将打开,扩展名弹出窗口消失,并且不会上传任何内容。我在 Ubuntu 15.04 上使用 google chrome。

在我的 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();
});
});

最佳答案

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

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

关于javascript - 使用 chrome 扩展将文件从本地存储上传到服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34897234/

相关文章:

javascript - 使用 angle-input-modified 检索索引?

javascript - 通过作为函数调用将 Props 传递给 React 类的正确方法

jquery - 监听表行计数变化

javascript - 快速移动鼠标永远不会触发 mouseleave 事件

javascript - Google Maps Javascript API v3 map 显示在桌面浏览器上,但不会显示在移动浏览器上

javascript - 在 2 个按钮上的类中交换 Javascript 函数

c++ - 将数据从 HTML5 应用程序传输到在客户端上下文中运行的 native 应用程序

html - 为什么我的 HTML 电子邮件中的图像在 Firefox 和 IE 中可以很好地调整大小,但在 Chrome 中却不行?

android - 如何确保 Android phonegap/cordova 应用程序使用 Chrome webviews?

javascript - 如何将多个 Material 谷歌图表添加到一页?