jquery 上传文件无法在Chrome扩展选项页面中工作

dnph8jn4  于 2023-10-17  发布在  jQuery
关注(0)|答案(2)|浏览(99)

我正在开发一个带有选项页面的Chrome扩展程序。在那个页面上,我放了一个上传图片的选项,但是不能用JavaScript加载文件。我尝试了很多解决方案(1st solution2nd solution ......),但没有一个工作。奇怪的是,即使是html代码中的“onclick”属性也不会调用相应的函数。下面是代码的一个例子:
HTML示例:

<input type="file" name="uploadImage" id="uploadImage" />
<button type="submit" id="imageUpload-btn" onclick="myFunction();">Upload</button>

JavaScript示例:

jQuery("#imageUpload-btn").click(function(){
    var image = new Image();
    image.src = jQuery("#uploadImage").val();
    alert(image.src);
    image.onload = function(){
        alert("on load");
    }
    image.onerror = function(){
        alert("error");
    }
});

我在第一个警报中获取文件的路径,但随后总是错误警报。函数“myFunction()”没有被调用,但是如果我直接在浏览器中打开文件,“onclick”触发器会工作,“myFunction()”会被调用。
我做错了什么,或者我错过了什么?

vecaoik1

vecaoik11#

<form name="Upload" action="#" enctype="multipart/form-data" method="post">
   <p>Filename: <INPUT type="file" name="submitfile" id = "submitfile" />
   <INPUT type="button" value="Send" onClick="checkSize();" />
   </form>

在这里,您正在使用enctype="multipart/form-data"在这种类型中,我们没有opportunity使用

im.src = document.getElementById('submitfile').value;

你需要去apache.commons.fileupload ServletFileUpload.isMultipartContent(request);,这是完全与java相关的。

rlcwz9us

rlcwz9us2#

你需要在#uploadImage中工作,因为上传文件的url会被破坏。你想用类似于

jQuery('#uploadImage').change(function(event) {
    const uploadedFile = event.target.files[0];
    // save uploadedFile to chrome.storage
});

相关问题