首页 > 解决方案 > asp fileupload 控件停止使用 android 8

问题描述

我正在使用 Microsoft ASP.NET Fileupload 控件在 Android 设备上启动用户相机,允许他们拍照,然后将该照片上传到 Web 服务器。该网站是一个渐进式 Web 应用程序,旨在供移动设备使用。该功能适用​​于所有早于 Android 8 的 Android 版本。显然,Google 实施了旨在阻止黑客劫持相机进行间谍活动的安全措施,因此现在 Fileupload 控件不再与操作系统正确交互。该控件确实会触发浏览器请求许可,但操作系统似乎无论如何都阻止了图像从相机到控件的传输。控件 HasFile 始终为 false,即使在用户授予权限后也是如此。有没有人遇到过这个问题?我有一种预感,解决方案可能只是将应用程序放在 Google Play 商店中。受信任的应用程序的谷歌标记可能会解决问题,但我不想在不知道这会解决问题的情况下投入时间和金钱来做这件事。有没有人围绕这个问题编程并且可能有一个编程解决方案?

// html

    <asp:Image ID="UploadButtonImage" runat="server" ImageUrl="StockImages/Btn_choose_Tree.png"  style="top: 0px; left: 0px; height: 0px; width: 0px; position: absolute;" BorderStyle="Groove"/>
    <asp:FileUpload ID="FileUpload1" runat="server" OnClick = "loadPicClick();" onchange="__doPostBack('', '');"  accept=".jpg,.jpeg," style=" top: 0px; left: 0px; height: 0px; width:0px; position: absolute; height: 25px; width: 175px; opacity: 0;" BackColor="#333333" BorderStyle="Groove" ToolTip="Choose your image to add to movie" />

// C#代码

public partial class index : System.Web.UI.Page
{
    static string unusedPic;
    protected void Page_Load(object sender, EventArgs e)
    {
        Page.Form.Attributes.Add("enctype", "multipart/form-data");

        if (FileUpload1.HasFile)
        {

            string ulFile = DateTimeOffset.Now.ToUnixTimeMilliseconds().ToString() + FileUpload1.FileName;
            FileUpload1.SaveAs(Server.MapPath("~/Pics/" + ulFile));
        }

    }
 }  

标签: asp.netfile-uploadandroid-cameraprogressive-web-appsandroid-permissions

解决方案


推荐阅读