Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 国产日韩欧美在线播放,亚洲午夜久久久精品电影院,毛片网站在线

          整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          html5移動端實現上傳多個本地圖片實例

          文主要講解移動端頁面上能上傳多個本地圖片的例子,在一些發布說說的頁面上能用得到,有興趣的小伙伴可以一起看看!

          效果圖:

          html:

          css:

          css樣式方面就不多說了,自己可以美化自己的布局,重點還是js中的實現代碼:如下

          JavaScript中,您可以使用HTML5的<input type="file">元素來實現圖片上傳功能。

          以下是一個簡單的示例代碼,演示如何在JavaScript中上傳圖片:

          HTML部分:

          <input type="file" id="uploadInput">
          <button onclick="uploadImage()">上傳圖片</button>
          

          JavaScript部分:

          function uploadImage() {
            var fileInput = document.getElementById('uploadInput');
            var file = fileInput.files[0];
          
            if (file) {
              var formData = new FormData();
              formData.append('image', file);
          
              // 發送圖片數據到服務器
              // 這里可以使用XMLHttpRequest或fetch等方法發送請求
              // 請根據您的需求選擇適當的方法
              // 示例中使用XMLHttpRequest發送POST請求
              var xhr = new XMLHttpRequest();
              xhr.open('POST', '/upload', true);
              xhr.onload = function() {
                if (xhr.status === 200) {
                  // 上傳成功
                  console.log('圖片上傳成功');
                } else {
                  // 上傳失敗
                  console.log('圖片上傳失敗');
                }
              };
              xhr.send(formData);
            }
          }
          

          API部分:

          [HttpPost]
          [RequestSizeLimit(5242880)]
           public async Task<APIResult> upload(IFormCollection collection)
           {
          
                      APIResult rtn = new APIResult();
          
                      if (collection == null)
                      {
                          rtn.code = -100;
                          rtn.msg = "圖片列表為空";
                          return rtn;
                      }
                      else
                      {
                          try
                          {
                              string file_path = "";
                              // 預處理 用戶參數:用戶指定子路徑                   
                              string userPath = DateTime.Now.ToString("yyyy-MM-dd");
                              if (collection.ContainsKey("path"))
                              {
                                  collection.TryGetValue("path", out Microsoft.Extensions.Primitives.StringValues val);
                                  if (!val.Equals("undefined"))
                                  {
                                      userPath = val.ToString();
                                  }
                              }
          
                              // 預處理 文件路徑
                              // 注意:這里可能會根據不同的環境來 修改 路徑前面是否需要添加 /
                              // 當發現上傳不成功,目錄無法創建時,可以嘗試修改這里
                              file_path = $"upload/imgs/{userPath}/";
                              var uploadPath = Path.Combine(_webHostEnvironment.WebRootPath, file_path);
                              if (!Directory.Exists(uploadPath))
                              {
                                  Directory.CreateDirectory(uploadPath);
                              }
          
                              // 處理文件
                              FormFileCollection filelist = (FormFileCollection)collection.Files;
                              foreach (IFormFile file in filelist)
                              {
                                  // 保存文件到磁盤
                                  string name = file.FileName;
                                  string FilePath = Path.Combine(uploadPath, name);
                                  string type = Path.GetExtension(name);
                                  using (var stream = System.IO.File.Create(FilePath))
                                  {
                                      await file.CopyToAsync(stream);
                                  };
          
                                  // 保存文件信息到表
                                  Sys_File f = new Sys_File();
                                  f.code = "image";
                                  f.name = name;
                                  f.file_type = type.Trim('.');
                                  f.file_group = userPath;
                                  f.file_path = $"/{file_path}{name}";
                                  f.is_active = true;
                                  f.memo = "";
                                  f.createTime = DateTime.Now;
                                  using (var dbctx = DBHelper.db)
                                  {
                                      await dbctx.AddAsync(f);
                                      await dbctx.SaveChangesAsync();
                                  };
                                  // 返回消息,包含文件路徑
                                  rtn.datas = $"/{file_path}{name}";
                                  rtn.code = 100;
                                  rtn.msg = "文件已保存!";
                              }
                          }
                          catch (Exception ex)
                          {
                              rtn.code = -200;
                              rtn.msg = "圖片保存失敗!";
                              Log4NetUnit.Instance.Log.Error("圖片保存失敗:" + ex.Message);
                          }
                          return rtn;
                      }
                  }


          在這個示例中,我們首先在HTML中創建了一個<input type="file">元素,用于選擇要上傳的圖片。

          然后,我們在JavaScript中編寫了一個uploadImage函數,該函數在點擊"上傳圖片"按鈕時觸發。

          uploadImage函數中,我們首先獲取到<input>元素,并從中獲取到用戶選擇的圖片文件。

          然后,我們創建一個FormData對象,并將圖片文件添加到其中。

          接下來,我們可以使用XMLHttpRequest或fetch等方法將圖片數據發送到服務器。

          在示例中,我們使用XMLHttpRequest發送了一個POST請求,將圖片數據作為FormData發送到/upload端點。

          您需要根據您的實際情況修改URL和請求方法。

          當請求完成時,我們可以根據響應的狀態碼來判斷上傳是否成功。

          在示例中,如果狀態碼為200,則表示上傳成功,否則表示上傳失敗。

          請注意,由于安全性限制,JavaScript無法直接訪問用戶的文件系統。

          因此,用戶必須手動選擇要上傳的文件。

          文本插件TINYMCE使用CTRL+V粘貼圖片上傳到遠程服務器

          最近項目中有一個需求,需要在編輯器增加Word內容一鍵粘貼的功能,粘貼后能夠自動將Word中的圖片上傳到服務器中,并且保留Word文檔中的文本樣式,比如顏色,字體,字體大小,表格等。粘貼操作要求支持快捷鍵操作(Ctrl + V),Web編輯器使用的TinyMCE5

          用戶每天需要發布新聞,新聞都是由編輯寫好,保存在Word文檔中,之前發的時候圖片處理比較麻煩,都是一張張上傳,效率比較低,現在希望能夠批量自動上傳,提高工作效率。

          希望在現有的后臺管理系統中直接集成到現有的編輯器(tinymce)中,做成一個按鈕,用戶點擊按鈕后就能粘貼,圖片自動上傳。操作盡量簡單,用戶體驗盡量的好用。

          ?

          網上搜了一下,基本上大部分文章講的都是用VUE+HTML5來實現的。我們實際測試后發現這種方案局限性比較大,而且兼容性也不夠好,在有些電腦上不行,有些客戶電腦又行,暫時找不到原因,開源方案也沒人聯系,沒有任何技術支持,所以放棄。圖片是轉成了BASE64上傳,與原始圖片相比尺寸更大些,應該是自動轉換時出了問題,清晰度也有下降。

          ?

          找了幾個星期最終只找到了一個最符合需求的插件:澤優Word一鍵粘貼控件(WordPaster),實際測試后發現效果還不錯基本能夠滿足需求。提供了完整的示例代碼,整合教程和視頻教程,集成起來也非常的方便,用戶體驗做的也很好。

          ?

          項目組建議最好能夠以插件方式進行使用,這樣集成升級后期維護更方便,前端沒有使用VUE框架,而是HTML+JS。用戶希望直接集成到編輯器(UEditor)中,在工具欄中提供一個按鈕,點擊按鈕后就能粘貼,圖片自動上傳。這樣的用戶體驗是最好的

          ?

          另外一點就是希望穩定可靠,因為用的人比較多,幾乎每天都會使用,使用頻繁也很高,出了問題就比較影響工作效率。客戶那邊要求提供手機和微信需要技術支持。

          ?

          上面的幾點能夠滿足的話基本就沒有什么問題,領導希望最好提供OEM或者買斷的采購方式,因為我們是軟件公司,也是專門做政府單位項目,客戶比較多,領導希望能夠買斷集成在我們自己的產品中,這樣就能夠為所有用戶提供這個功能,用戶體驗也能夠統一。主要是領導不想每次都要單獨采購,太麻煩了。

          ?

          示例下載:


          主站蜘蛛池模板: 国产激情无码一区二区三区| 日韩一区二区精品观看| 中文精品一区二区三区四区 | 日韩精品一区二区三区毛片| 国产SUV精品一区二区88| 国产一区二区三区日韩精品| 射精专区一区二区朝鲜 | 亚洲国产综合无码一区二区二三区| 国产亚洲一区二区三区在线观看| 精品国产一区二区三区久久久狼| 中文乱码精品一区二区三区| 国产av夜夜欢一区二区三区| 日韩毛片基地一区二区三区| 亚洲国产精品一区二区久久| 国产视频一区二区在线播放| 亚洲夜夜欢A∨一区二区三区| 麻豆一区二区三区蜜桃免费| 风流老熟女一区二区三区| 无码人妻一区二区三区在线水卜樱| 风间由美在线亚洲一区| 中文字幕av人妻少妇一区二区| 一区二区三区四区精品视频| 久久久久久免费一区二区三区| 久久精品国产一区二区电影| 一区二区三区美女视频| 欧美激情国产精品视频一区二区| 一区二区传媒有限公司| 久久精品岛国av一区二区无码| 一区二区日韩国产精品| 日本在线观看一区二区三区| 香蕉视频一区二区| 精品在线一区二区| 精品国产日产一区二区三区 | 亚洲成人一区二区| 99国产精品一区二区| 亚洲蜜芽在线精品一区| 欧亚精品一区三区免费| 天堂不卡一区二区视频在线观看 | 波多野结衣免费一区视频| 日韩精品无码一区二区视频| 91久久精品无码一区二区毛片|