Any workarounds for the Safari HTML5 multiple file upload bug?

后端 未结 3 1366
执笔经年
执笔经年 2021-01-18 11:24

After weeks of tweaking I finally gave up. I just couldn\'t fix my multiple file upload on safari, which really bothered me because my code worked perfectly as it should on

3条回答
  •  隐瞒了意图╮
    2021-01-18 12:16

    I ran into the image.jpg problem with asp.net. It may benefit someone. I was appending a non-unique hash to each image file to tie it to the record in the db. Works fine on every platform (our users are using, anyway), except when using Safari. I just appended a hash and a unique three digit string I pulled from the seconds part of DateTime to string:

    if (!string.IsNullOrEmpty(ViewState["HashId"].ToString()))
            {
                string filepath = Server.MapPath("~/docs/");
                HttpFileCollection uploadedFiles = Request.Files;
                Span1.Text = string.Empty;
    
                for (int i = 0; i < uploadedFiles.Count; i++)
                {
                    HttpPostedFile userPostedFile = uploadedFiles[i];
    
                    try
                    {
                        if (userPostedFile.ContentLength > 0)
                        {
    
                            string timestamp = DateTime.UtcNow.ToString("fff",
                                                 CultureInfo.InvariantCulture);
    
                            //Span1.Text += "File #" + (i + 1) + "
    "; //Span1.Text += "File Content Type: " + userPostedFile.ContentType + "
    "; //Span1.Text += "File Size: " + userPostedFile.ContentLength + "kb
    "; //Span1.Text += "File Name: " + userPostedFile.FileName + "
    "; userPostedFile.SaveAs(filepath + "\\" + ViewState["HashId"] + "_" + Path.GetFileName(timestamp + userPostedFile.FileName)); // Span1.Text += "Location where saved: " + filepath + "\\" + Path.GetFileName(userPostedFile.FileName) + "

    "; InsertFilename("~/docs/" + ViewState["HashId"] + "_" + Path.GetFileName(timestamp + userPostedFile.FileName), ViewState["HashId"] + "_" + Path.GetFileName(timestamp + userPostedFile.FileName)); } } catch (Exception Ex) { Span1.Text += "Error:
    " + Ex.Message; } } BindImages(); SetAttchBitTrue(); Button4.Visible = true; AttchStatus.Text = "This Record Has Attachments"; Button2.Visible = true; Button3.Visible = true; Panel1.Visible = false; }

    May be a better way, but we just have a small number of people uploading one - two, maybe three images per record in the database. Should work.

提交回复
热议问题