当前位置: 首页 > 知识库问答 >
问题:

Fileupload可以在pc浏览器中工作,但不能在android webview中工作

公羊绪
2023-03-14

我试图做一个文件上传到一个链接(共享点Rest服务),在chrome浏览器中工作良好,但不是在android WebView。

我知道android webview有很多限制,但我尝试使用以下方法上传一个文件

https://github.com/mgks/os-fileup

它打开浏览器,但它不显示文件名,也不上传任何内容或调用服务,但同样的代码在chrome浏览器中运行良好(请注意,我已经启用了CORS测试它

<!DOCTYPE html>
<html>
<body>

    <h1>Sharepoint File upload</h1>

    <form method="POST" enctype="multipart/form-data" id="fileUploadForm">
        <!--<input type="text" name="extraField" />--><br /><br />       
        <input type="file" id="fileupload" name="files" /><br /><br />
        <input type="submit" value="Submit" id="btnSubmit" />
    </form>

    <h1></h1>
    <span id="result"></span>

    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>
    <script>
        $(document).ready(function () {

            $("#btnSubmit").click(function (event) {

                //stop submit the form, we will post it manually.
                event.preventDefault();

                // Get form
              //  var form = $('#fileUploadForm')[0];

                // Create an FormData object
                var data = new FormData();
                data.append("File", $('#fileupload')[0].files[0]);
                // If you want to add an extra field for the FormData
                // data.append("File", form);
                console.log('file', $('#fileupload')[0].files[0]);
                // disabled the submit button
                $("#btnSubmit").prop("disabled", true);

                var _url = "https://my.sharepoint.com/teams/<MyProj>/_api/web/getfolderbyserverrelativeurl(\'/teams/<MyProj>/Project Documents/1264\')/files/add(overwrite=true,url=\'TestUpload1.txt\')"
                $.ajax({
                    type: "POST",
                   // enctype: 'multipart/form-data',
                    headers: {     
                        'Accept': 'application/json;odata=verbose',
                        'processData': false,
                        'Authorization': 'Bearer <key-value>',
                        'Content-Type': 'application/json'
                    },
                    url: _url,
                    data: data,
                    processData: false,
                    contentType: true,
                    cache: false,
                    timeout: 600000,                    
                    success: function (data) {

                        $("#result").text(data);
                        console.log("SUCCESS : ", data);
                        $("#btnSubmit").prop("disabled", false);

                    },
                    error: function (e) {

                        $("#result").text(e.responseText);
                        console.log("ERROR : ", e);
                        $("#btnSubmit").prop("disabled", false);

                    }
                });

            });

        });
    </script>
</body>
</html> 

android代码文件类型被限制为image/*但我需要上传pdf、doc和txt文件

共有1个答案

阎扬
2023-03-14

对于所有文件类型,将image/*更改为*/*,或者您可以使用application/PDF专门用于PDF文件。

关于文件上传,一切似乎都很好,它应该工作。您正在使用最新的操作系统文件更新吗?回购最近刚刚更新了许多错误修复。或者试试Smart WebView,如果它适合你的话。

 类似资料:
  • 几天来,我一直在用头撞这个,完全被难倒了。下面是纲要: 我有一个Eclipse插件项目,使用Tycho通过Maven 3构建 在Maven中,我已经设置了maven-jarsigner-plugin来使用我的keystore对jars进行签名(有关keystore的详细信息,请参阅下文) 我的密钥库里有个Thawte签名的代码签名证书 我可以从目标/*中获取任何签名的jar文件,并在上面运行“ja

  • 后端:Express服务器,带npx create-Express-api后端 Frontend: Next.js,带npx create-react-app前端 我已经在我的根文件夹中实现了这些命令,并尝试运行npm start xxx来检查它们是否还在工作。但是它们在我的http://localhost:3000中不起作用,尽管它们在此链接中起作用http://172.27.178.192:3

  • 问题内容: 已解决:问题是Wingware Python IDE。我想现在自然而然的问题是,这是怎么可能的以及如何解决。 昨天我问了一个问题Python中的multiprocessing.Pool问题,这个问题几乎相同,但是我发现它似乎可以在Windows计算机上运行,​​而不能在我的Ubuntu上运行。在本文的结尾,我将发布执行相同功能的代码的稍有不同的版本。 我的问题的简短摘要:在Python

  • 我正在开发一个Spotify应用程序,我想获得令牌。 我做错了什么? 真的有办法使用JavaScript从静态HTML文件中使用Spotify API吗?

  • 我能够登录我的本地(和远程服务器)与以下curl(我用Postman生成)...我可以登录成功使用另一个API客户端(Rest)与我试图在Postman中使用相同的参数/头/体。我已经关闭了SSL证书验证和发送邮递员令牌头设置(每其他堆栈溢出答案)... 卷曲: Curl-X POST\http://localhost:8080/api/user/login\-H'接受:应用程序/json'\-H

  • 这就是我正在做的。 部署此应用程序在 jboss 中失败,因为它在 tomcat 中部署,并且像 charm 一样工作。 我使用来自eclipse的动态web应用程序作为项目源。 将项目导出到war文件并在jboss服务器中部署也不起作用。 web.xml: Spring.xml: 控制器: 和 JBOSS 中的错误: