1. 程式人生 > >週末大放送網站圖片上傳,水印,預覽,截圖

週末大放送網站圖片上傳,水印,預覽,截圖

    週末閒著沒事,將網站中經常用到的對圖片的操作做了一個總結,方便以後回顧,這裡將一天的成果,貼出來,希望能幫到大家。

    首先是swfupload方式的無重新整理上傳,關於怎麼配置,按照demo 的寫法,我相信只要你不是太笨,都能成功。

   專案結構:

            

上傳程式碼:

前臺上傳頁面,你可以根據需要建html頁,也可以建webform。這裡用一般處理程式來對照片進行處理,加水印,修改檔名等操作。

 1 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="SWFUploadImage.aspx.cs
" Inherits="Wolfy.ImageWeb.SWFUploadImage" %> 2 3 <!DOCTYPE html> 4 5 <html xmlns="http://www.w3.org/1999/xhtml"> 6 <head id="Head1" runat="server"> 7 <title></title> 8 <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" /> 9 <
script src="../SWFUpload/swfupload.js" type="text/javascript"></script> 10 <script src="../SWFUpload/handlers.js" type="text/javascript"></script> 11 <script src="../Script/jquery-1.7.1.js"></script> 12 <script type="text/javascript"> 13 var swfu; 14
window.onload = function () { 15 swfu = new SWFUpload({ 16 // Backend Settings 17 upload_url: "/SWFUploadHandler.ashx",//交給一般處理程式來處理 18 post_params: { 19 "ASPSESSID": "<%=Session.SessionID %>" 20 }, 21 22 // File Upload Settings 23 file_size_limit: "2 MB", 24 file_types: "*.jpg;*.gif", 25 file_types_description: "JPG Images", 26 file_upload_limit: 0, // Zero means unlimited 27 28 // Event Handler Settings - these functions as defined in Handlers.js 29 // The handlers are not part of SWFUpload but are part of my website and control how 30 // my website reacts to the SWFUpload events. 31 swfupload_preload_handler: preLoad, 32 swfupload_load_failed_handler: loadFailed, 33 file_queue_error_handler: fileQueueError, 34 file_dialog_complete_handler: fileDialogComplete, 35 upload_progress_handler: uploadProgress, 36 upload_error_handler: uploadError, 37 upload_success_handler: Show,//這裡修改了方法的定義。 38 upload_complete_handler: uploadComplete, 39 40 // Button settings 41 button_image_url: "/SWFUpload/images/XPButtonNoText_160x22.png", 42 button_placeholder_id: "spanButtonPlaceholder", 43 button_width: 160, 44 button_height: 22, 45 button_text: '<span class="button">選擇上傳圖片 <span class="buttonSmall">(2 MB Max)</span></span>', 46 button_text_style: '.button { font-family: Helvetica, Arial, sans-serif; font-size: 14pt; } .buttonSmall { font-size: 10pt; }', 47 button_text_top_padding: 1, 48 button_text_left_padding: 5, 49 50 // Flash Settings 51 flash_url: "/SWFUpload/swfupload.swf", // Relative to this file 52 flash9_url: "/SWFUpload/swfupload_FP9.swf", // Relative to this file 53 54 custom_settings: { 55 upload_target: "divFileProgressContainer" 56 }, 57 58 // Debug Settings 59 debug: false 60 }); 61 } 62 //上傳成功以後執行該方法 63 function Show(file, serverData) { 64 var s = serverData.split(':');//接收從服務端返回的資料,按照分號分隔 65 66 if (s[0] == "ok") { 67 $("#imgSrc").attr("src", s[1]); 68 } 69 } 70 </script> 71 </head> 72 <body> 73 <form id="form1" runat="server"> 74 75 <div id="content"> 76 77 <div id="swfu_container" style="margin: 0px 10px;"> 78 <div> 79 80 <span id="spanButtonPlaceholder"></span> 81 82 </div> 83 84 <div id="divFileProgressContainer" style="height: 75px;"></div> 85 86 <img id="imgSrc" /> 87 </div> 88 </div> 89 </form> 90 </body> 91 </html>
SWFUploadImage.aspx
 1 using System;
 2 using System.Collections.Generic;
 3 using System.Drawing;
 4 using System.IO;
 5 using System.Linq;
 6 using System.Web;
 7 
 8 namespace Wolfy.ImageWeb
 9 {
10     /// <summary>
11     /// SWFUploadHandler 的摘要說明
12     /// </summary>
13     public class SWFUploadHandler : IHttpHandler
14     {
15 
16         public void ProcessRequest(HttpContext context)
17         {
18             context.Response.ContentType = "text/plain";
19             HttpPostedFile file = context.Request.Files["Filedata"];//獲取上傳的檔案資料.
20             string fileName = Path.GetFileName(file.FileName);//獲取上傳檔案的名稱.
21             string fileExt = Path.GetExtension(fileName);//得到檔案的副檔名.
22 
23             if (fileExt == ".jpg")
24             {
25                 //將上傳的圖片放到不同的資料夾下.(根據日期)
26                 string dir = "/UploadImage/" + DateTime.Now.Year + "/" + DateTime.Now.Month + "/" + DateTime.Now.Day + "/";
27                 Directory.CreateDirectory(Path.GetDirectoryName(context.Server.MapPath(dir)));//建立資料夾.
28                 //檔案重新命名名字
29                 string fullDir = dir + DateTime.Now.ToString("yyyyMMddhhmmss") + fileExt;//構建完整的檔案路徑.
30                 file.SaveAs(context.Server.MapPath(fullDir));
31                 context.Response.Write("ok:" + fullDir);
32 
33 
34             }
35         }
36       
37         public bool IsReusable
38         {
39             get
40             {
41                 return false;
42             }
43         }
44     }
45 }
SWFUploadHandler.ashx

預覽和截圖,水印程式碼(這裡將他們整合在一個頁面了,實在不想再建頁面,在配置swfupload),截圖的時候,用到網上的一個jquery外掛(可變層,可移動層)

  1 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="CutPhoto.aspx.cs" Inherits="Wolfy.ImageWeb.CutPhoto1" %>
  2 
  3 <html xmlns="http://www.w3.org/1999/xhtml">
  4 <head id="Head1" runat="server">
  5     <title></title>
  6     <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />
  7     <script src="../SWFUpload/swfupload.js" type="text/javascript"></script>
  8     <script src="../SWFUpload/handlers.js" type="text/javascript"></script>
  9     <script src="../Script/jquery-1.7.1.js"></script>
 10     <script src="Script/jquery-ui-1.8.2.custom.min.js"></script>
 11     <script type="text/javascript">
 12         var swfu;
 13         window.onload = function () {
 14             swfu = new SWFUpload({
 15                 // Backend Settings
 16                 upload_url: "/CutPhoto.ashx?action=up",//交給一般處理程式來處理
 17                 post_params: {
 18                     "ASPSESSID": "<%=Session.SessionID %>"
 19                 },
 20 
 21                 // File Upload Settings
 22                 file_size_limit: "2 MB",
 23                 file_types: "*.jpg;*.gif",
 24                 file_types_description: "JPG Images",
 25                 file_upload_limit: 0,    // Zero means unlimited
 26 
 27                 // Event Handler Settings - these functions as defined in Handlers.js
 28                 //  The handlers are not part of SWFUpload but are part of my website and control how
 29                 //  my website reacts to the SWFUpload events.
 30                 swfupload_preload_handler: preLoad,
 31                 swfupload_load_failed_handler: loadFailed,
 32                 file_queue_error_handler: fileQueueError,
 33                 file_dialog_complete_handler: fileDialogComplete,
 34                 upload_progress_handler: uploadProgress,
 35                 upload_error_handler: uploadError,
 36                 upload_success_handler: Show,//這裡修改了方法的定義。
 37                 upload_complete_handler: uploadComplete,
 38 
 39                 // Button settings
 40                 button_image_url: "/SWFUpload/images/XPButtonNoText_160x22.png",
 41                 button_placeholder_id: "spanButtonPlaceholder",
 42                 button_width: 160,
 43                 button_height: 22,
 44                 button_text: '<span class="button">選擇上傳圖片 <span class="buttonSmall">(2 MB Max)</span></span>',
 45                 button_text_style: '.button { font-family: Helvetica, Arial, sans-serif; font-size: 14pt; } .buttonSmall { font-size: 10pt; }',
 46                 button_text_top_padding: 1,
 47                 button_text_left_padding: 5,
 48 
 49                 // Flash Settings
 50                 flash_url: "/SWFUpload/swfupload.swf", // Relative to this file
 51                 flash9_url: "/SWFUpload/swfupload_FP9.swf", // Relative to this file
 52 
 53                 custom_settings: {
 54                     upload_target: "divFileProgressContainer"
 55                 },
 56 
 57                 // Debug Settings
 58                 debug: false
 59             });
 60         }
 61         var s;
 62         //上傳成功以後執行該方法
 63         function Show(file, serverData) {
 64             s = serverData.split(':');//接收從服務端返回的資料,按照分號分隔
 65 
 66             if (s[0] == "ok") {
 67                 //將服務端返回的圖片路徑作為外層DIV的背景。
 68                 //注意:backgroundImage:I要大寫,url:
 69                 $("#divContent").css("backgroundImage", "url(" + s[1] + ")").css("width", s[2] + "px").css("height", s[3] + "px");//注意單位一定要加上
 70             }
 71         }
 72         //截圖
 73         $(function () {
 74             $("#divCut").resizable({
 75                 containment: '#divContent'
 76             }).draggable({ containment: 'parent' });
 77             $("#btnCut").click(function () {
 78                 //開始獲取divCut的範圍
 79                 //offset():表示元素相對瀏覽器的相對座標.
 80                 var y = $("#divCut").offset().top - $("#divContent").offset().top; //得到縱座標.
 81                 var x = $("#divCut").offset().left - $("#divContent").offset().left;
 82                 var width = $("#divCut").width(); //寬度
 83                 var height = $("#divCut").height(); //高度.
 84                 $.post("/CutPhoto.ashx", { "action": "cut", "x": parseInt(x), "y": parseInt(y), "width": parseInt(width), "height": parseInt(height), "imgSrc": s[1] }, function (data) {
 85                     $("#cutPhotoSrc").attr("src", data);
 86                 });
 87             });
 88             //打水印並預覽

            
           

相關推薦

週末網站圖片水印

    週末閒著沒事,將網站中經常用到的對圖片的操作做了一個總結,方便以後回顧,這裡將一天的成果,貼出來,希望能幫到大家。     首先是swfupload方式的無重新整理上傳,關於怎麼配置,按照demo 的寫法,我相信只要你不是太笨,都能成功。    專案結構:              上傳

圖片時實現本地功能的原理解析

前言 最近在專案上加一個圖片裁剪上傳的功能,用的是cropper外掛,注意到選擇本地圖片後就會有預覽效果,這裡整理一下這種預覽效果的實現原理; 實現原理 通過input的 type = file屬性和window的內建FileReader物件,利用

【獨家分享】資源集合!週末!Ja粉超級福利!

本週Ja強為Ja粉們帶來了兩波架構師資源 【高階架構師四十八個階段高階課】 【Java高階網際網路架構師課程】 廣大Ja粉們反應火熱 掀起了下載狂潮 。  。  。 Ja強看到如此景象,深感欣慰 不枉小Ja幾經周折地獲取到資源 值得一提的

springmvc圖片(兼容ie8以上實時

處理 spa aps news time htm tip 技術分享 ans html代碼: <form id="uploadform" method="post" enctype="multipart/form-data"> <

【轉載】【JAVA秒會技術之圖片】基於Nginx及FastDFS完成圖片及展示

相互 沒有 con 性能 ext 存儲服務器 網絡 管理 代理配置 基於Nginx及FastDFS,完成商品圖片的上傳及展示 一、傳統圖片存儲及展示方式 存在問題: 1)大並發量上傳訪問圖片時,需要對web應用做負載均衡,但是會存在圖片共享問題 2)web應

vue富文本編輯編輯自動單個圖片不能的問題解決:

pac themes indexof conf html_ sta spa load this //預覽<div class="htmlViewBox"> <p v-html="activity_html_defaultMsg" v-show="html

基於Spring Boot實現圖片/加水印一把梭操作

文章共 537字,閱讀大約需要 2分鐘 ! 概述 很多網站的圖片為了版權考慮都加有水印,尤其是那些圖片類網站。自己正好最近和圖片打交道比較多,因此就探索了一番基於 Spring Boot這把利器來實現從 圖片上傳 → 圖片加水印 的一把梭操作! 注: 本文首發於 M

微信小程式圖片選擇、到伺服器、(PHP)實現例項

微信小程式圖片選擇、上傳到伺服器、預覽(PHP)實現例項 小程式實現選擇圖片、預覽圖片、上傳到開發者伺服器上 後臺使用的tp3.2 圖片上傳  請求時候的header參考時可以去掉(個人後臺驗證許可權使用) 小程式前端程式碼: <view class="se

Dedecmsv5.7整合ueditor 圖片新增水印

最近的專案是做dedecmsv5.7的二次開發,被要求上傳的圖片要加水印,百度ueditor編輯器不支援自動加水印,所以,找了很多資料整合記錄一下,具體效果圖   這裡不仔細寫dedecmsv5.7 整合ueditor編輯器了   1、開啟ueditor目錄下的php目錄下的con

小程式之圖片、刪除和和視訊的和刪除

最近在做一個小程式,帖子中用到了一個關於文字、圖片和視訊的一些操作。 最終的樣式 原始樣式 上傳圖片 上傳視訊 這個可以實現輸入文字

基於asp.net + easyui框架js實現圖片之前判斷圖片格式同時實現相容各種瀏覽器+下載

        最近在做圖片上傳的一個前臺頁面,上傳圖片功能雖然很簡單,但是需要我們學習的地方很多。在上傳圖片之前驗證圖片的格式,並同時實現預覽。這篇部落格我們就用一段簡單的js程式碼來實現驗證圖片格式,並同時預覽的功能。 html頁面 <div> 選

開發一款圖片+使用者反饋(留言)小程式附前端+後端程式碼

之前幫別人開發的,只是花了一天的時間,做好了前端+後端,還有後臺哦!!!很簡單的一個小程式,就是表單+圖片上傳。下面是小程式的介面。程式碼結構手機版後臺程式碼我就不貼了,直接整個打包。留言板小程式部署教

Java Spring Boot 文件和文件地址解析

jar包 tof form loader index res for catch div @RequestMapping(value ="/upload",method = RequestMethod.POST) @Permission(isAjax=fa

confluence文件附件亂碼問題(linux服務器安裝字體操作)

serve 接下來 ati rwx inux 打開 預覽 字庫 這一 在confluence上傳excel文件,預覽時發現亂碼問題主要是因為再上傳文件的時候一般是Windows下的文件上傳,而預覽的時候,是linux下的環境,由於linux下沒有微軟字體,所以預覽的時候

關於confluence文件附件查看時出現亂碼的問題解決辦法

ascii env ssi x11 要求 c盤 無法識別 ntc 默認自帶 在confluence上傳excel文件,預覽時發現亂碼問題主要是因為再上傳文件的時候一般是Windows下的文件上傳,而預覽的時候,是linux下的環境,由於linux下沒有微軟字體,所以預覽的時

使用ajax發文件的三種方式及圖片的方法,按鈕美化

absolut jquer 文件的 inpu headers return isp roc onchange 後端代碼 def upload(request): if request.method == "GET": return render(

php圖片類(支持縮、裁剪、圖片縮略功能)

php圖片上傳類(支持縮放、裁剪、圖片縮代碼: /** * @author [Lee] <[<[email protected]>]> * 1、自動驗證文件是表單提交的文件還是base64流提交的文件 * 2、驗證圖片類型是否合法 * 3、驗證圖片尺寸是否合法 * 4、驗證圖片大小是否合法

給MFC新增圖片,動,新增背景音樂(打包)

最近突然有了一種想用MFC做賀卡的想法,做成一個.exe程式,讓被祝賀的人可以用電腦在任何位置開啟觀看,這就要求所使用資源必須新增至MFC工程,下面的方法都是本人測試過的,希望對你有所幫助呦! 1新增圖片 MFC只支援新增256色bmp格式的圖片,如果你沒有bmp格式的圖片,可以從該連結

CKfinder for java詳解二:縮圖片的縮

我們找到  <thumbs><enabled>true</enabled><url>�SE_URL%_thumbs/</url><directory>�SE_DIR%_thumbs</directory>&l

最全的Python資料你敢來我就敢

基礎入門類 《Python簡明教程》:這是一本只有100頁左右的小冊子,你可以迅速的瀏覽並敲一遍程式碼,或多或少都會提升你的Python基礎能力; 《笨方法學Python》:這本書同樣非常的短小精悍,全書是以習題的形式讓讀者掌握有關Python的基礎知識,裡面的程式碼建議讀者能夠敲一遍;