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 被窝国产理论一二三影院,精品国产97在线观看,91在线免费看

          整合營銷服務商

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

          免費咨詢熱線:

          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或者買斷的采購方式,因為我們是軟件公司,也是專門做政府單位項目,客戶比較多,領導希望能夠買斷集成在我們自己的產品中,這樣就能夠為所有用戶提供這個功能,用戶體驗也能夠統一。主要是領導不想每次都要單獨采購,太麻煩了。

          ?

          示例下載:


          主站蜘蛛池模板: 久久AAAA片一区二区| 国产天堂一区二区综合| 国模吧一区二区三区精品视频| 亚洲成在人天堂一区二区| 78成人精品电影在线播放日韩精品电影一区亚洲 | 亚洲日本久久一区二区va| 无码毛片一区二区三区视频免费播放| 日韩熟女精品一区二区三区| 无码人妻精品一区二区三区久久| 国产Av一区二区精品久久| 久久精品无码一区二区app| 国产视频一区在线播放| 国产精品一区二区av| 国产高清视频一区二区| 99久久精品午夜一区二区| 国产福利视频一区二区| 亚洲国产精品第一区二区三区| 久久精品无码一区二区WWW| 国产AV午夜精品一区二区入口| 国产女人乱人伦精品一区二区| 久久一区二区三区精华液使用方法| 精品国产免费一区二区三区 | 在线精品日韩一区二区三区| 色偷偷一区二区无码视频| 无码人妻精品一区二区三| 无码人妻精品一区二区三区久久 | 国产在线无码视频一区| 亚洲日韩AV一区二区三区中文| 国产在线乱子伦一区二区| 性色AV一区二区三区天美传媒| 亚洲线精品一区二区三区| 香蕉久久av一区二区三区| 精品人妻少妇一区二区三区| 四虎精品亚洲一区二区三区| 日本一区二区三区在线看| 相泽南亚洲一区二区在线播放| 国产亚洲一区二区精品| 福利一区二区在线| 日韩三级一区二区三区| 国产精品女同一区二区| 99精品国产高清一区二区麻豆|