webservice 图片服务器

c# wiform程序通过webservice上传图片到服务器 选择图片,预览图片,确认上传,在列表显示已上传图片并预览,并存入数据库 webservice: private void btnPicture_Click(object sender, EventArgs e) { fileDialog = new OpenFileDialog(); if (fileDialog.Show 阅读详情

.Net 图片上传的一个类库的源码2008-10-16 17:17上传图片到服务器上是网站开发中很常用的功能,它的实现也很简单,可以新建一个上传类UpLoadAndSaveImage,这个类中包含三个函数UpLoadAndSave,CreateFilePath,SaveToServer。使用时调用下面的UpLoadAndSave函数就可以了,该函数第一个参数为要上传的图片数据,第二个参数为上传的虚拟路径(相对路径),第三个参数为上传图片的格式,第四个参数为上传的物理路径。在这个函数中调用CreateFilePath函数产生随机的图片名称,最后再调用SaveToServer保存图片到服务器上。
public string UpLoadAndSave(byte[] data,refstring virPath,string fext,string physicPath)
{
// 返回文件物理地址,修改虚拟地址
if(data==null||virPath==null||fext==null||physicPath=="")
{
throw new Exception(" 非法参数" );
}
string rtnValue=SaveToServer(data,fext,physicPath,data.Length);
virPath += rtnValue;
physicPath+=rtnValue;
return physicPath;
}
private string CreateFilePath(string fext)
{
string filePath="";
Random rd=new Random();
filePath+=DateTime.Now.Year.ToString("0000");
filePath+=DateTime.Now.Month.ToString("00");
filePath+=DateTime.Now.Date.ToString("00");
filePath+=DateTime.Now.Hour.ToString("00");
filePath+=DateTime.Now.Minute.ToString("00");
filePath+=DateTime.Now.Second.ToString("00");
filePath+=DateTime.Now.Millisecond.ToString("00");
filePath+=rd.Next(99).ToString("00");
filePath+="."+fext;
return filePath;
}
private string SaveToServer(byte[] data,string fext,string physicPath,int fileLen)
{
string filePath=CreateFilePath(fext);
string rtnValue=filePath;
filePath=filePath.Insert(0,@physicPath);
if(File.Exists(filePath))
{
filePath=CreateFilePath(fext);
rtnValue=filePath;
}
FileStream fs=new FileStream(filePath,FileMode.CreateNew);
fs.Write(data,0,fileLen);
fs.Close();
return rtnValue;
}

//在其他页面调用该上传类,见下面的实例:
UpLoadAndSaveImage upload=new UpLoadAndSaveImage();
try
{
string virPath="UploadFiles/";
string physicPath=Server.MapPath(Request.ApplicationPath+"/"+"UploadFiles/");
string fext=this.File1.PostedFile.FileName;
if(fext.Length==0)
{
return;
}

fext=Path.GetExtension(fext).ToLower();
if(fext!=".jpg"&&fext!=".gif"&&fext!=".bmp"&&fext!=".doc"&&fext!=".rar"&&fext!=".zip"&&fext!=".jpeg")
{
Response.Write("<script>alert('Invalid file format,the file format must be jpg or jpeg or gif
or bmp or doc or rar or zip')</script>");
return;
}

byte[] data=newbyte[this.File1.PostedFile.ContentLength];

this.File1.PostedFile.InputStream.Read(data,0,this.File1.PostedFile.ContentLength);

physicPath=upload.UpLoadAndSave(data,ref virPath,fext,physicPath);

url=virPath;

if(Session["PhotoUrl"]==null)
{
ArrayList al=new ArrayList();
al.Add(physicPath);
Session["PhotoUrl"]=al;
}
else
{
ArrayList al2=(ArrayList)Session["PhotoUrl"];

al2.Add(physicPath);

Session["PhotoUrl"]=al2;
}
}
catch(Exception ex)
{
Response.Write("<script>alert('"+ex.Message+"');</script>");
}

// 如果要指定上传图片的大小,可以在调用该上传类前生成,见下面的实例:

try
{
empPic = new Bitmap(File1.PostedFile.InputStream);
}
catch
{
Script.Alert(" 图片格式错误!" );
return false;
}
Bitmap picSmall = new Bitmap(empPic,227,91); // 生成图片大小
MemoryStream stream = new MemoryStream();

picSmall.Save(stream,ImageFormat.Jpeg);
byte[] byteArray = stream.ToArray();
PathName1="Photo/";
PathName=Server.MapPath(Request.ApplicationPath+"/Photo/");
UpLoadAndSaveImage upimage=new UpLoadAndSaveImage();
PathName=upimage.UpLoadAndSave(byteArray,ref PathName1,".jpg",PathName);

以下是我曾经写的图片上传类,带水印功能:

//生成缩略图功能。
using System;
using System.IO;
using System.Web;
using System.Web.UI.HtmlControls;
using System.Drawing;
namespace MyUplod
{
    /// <summary>
    /// 非寒上传类(图片)。 作者:非寒.功能:上传文件操作(主要用于图片上传);
    /// </summary>
    public class Upload
    {
        private int _Error = 0;//返回上传状态。
        private int _MaxSize = 5120000;//最大单个上传文件 (默认)
        private string _FileType = "jpg/gif/bmp/png";//所支持的上传类型用"/"隔开
        private string _SavePath = System.Web.HttpContext.Current.Server.MapPath(".") + "//";//保存文件的实际路径
        private int _SaveType = 0;//上传文件的类型,0代表自动生成文件名
        private HtmlInputFile _FormFile;//上传控件。
        private string _InFileName = "";//非自动生成文件名设置。
        private string _OutFileName = "";//输出文件名。
        private bool _IsCreateImg = true;//是否生成缩略图。
        private bool _Iss = false;//是否有缩略图生成.
        private int _Height = 0;//获取上传图片的高度
        private int _Width = 0;//获取上传图片的宽度
        private int _sHeight = 120;//设置生成缩略图的高度
        private int _sWidth = 120;//设置生成缩略图的宽度
        private bool _IsDraw = false;//设置是否加水印
        private int _DrawStyle = 0;//设置加水印的方式0:文字水印模式,1:图片水印模式,2:不加
        private int _DrawString_x = 10;//绘制文本的X坐标(左上角)
        private int _DrawString_y = 10;//绘制文本的Y坐标(左上角)
        private string _AddText = "杭州五维多媒体/nHTTP://WWW.5D.CN";//设置水印内容
        private string _Font = "宋体";//设置水印字体
        private int _FontSize = 12;//设置水印字大小
        private int _FileSize = 0;//获取已经上传文件的大小
        private string _CopyIamgePath = System.Web.HttpContext.Current.Server.MapPath(".") + "/images/5dm_new.jpg";//图片水印模式下的覆盖图片的实际地址
      
        /// <summary>
        /// Error返回值,1、没有上传的文件。2、类型不允许。3、大小超限。4、未知错误。0、上传成功。
        /// </summary>
        public int Error
        {
            get { return _Error; }
        }
        /// <summary>
        /// 最大单个上传文件
        /// </summary>
        public int MaxSize
        {
            set { _MaxSize = value; }
        }
        /// <summary>
        /// 所支持的上传类型用"/"隔开
        /// </summary>
        public string FileType
        {
            set { _FileType = value; }
        }
        /// <summary>
        /// //保存文件的实际路径
        /// </summary>
        public string SavePath
        {
            set { _SavePath = System.Web.HttpContext.Current.Server.MapPath(value); }
            get {return _SavePath;}
        }
        /// <summary>
        /// 上传文件的类型,0代表自动生成文件名
        /// </summary>
        public int SaveType
        {
            set { _SaveType = value; }
        }
        /// <summary>
        /// 上传控件
        /// </summary>
        public HtmlInputFile FormFile
        {
            set { _FormFile = value; }
        }
        /// <summary>
        /// //非自动生成文件名设置。
        /// </summary>
        public string InFileName
        {
            set { _InFileName = value; }
        }
        /// <summary>
        /// 输出文件名
        /// </summary>
        public string OutFileName
        {
            get { return _OutFileName; }
            set { _OutFileName = value; }
        }
        /// <summary>
        /// 是否有缩略图生成.
        /// </summary>
        public bool Iss
        {
            get { return _Iss; }
        }
        /// <summary>
        /// //获取上传图片的宽度
        /// </summary>
        public int Width
        {
            get { return _Width; }
        }
        /// <summary>
        /// //获取上传图片的高度
        /// </summary>
        public int Height
        {
            get { return _Height; }
        }
        /// <summary>
        /// 设置缩略图的宽度
        /// </summary>
        public int sWidth
        {
            get { return _sWidth; }
            set { _sWidth = value; }
        }
        /// <summary>
        /// 设置缩略图的高度
        /// </summary>
        public int sHeight
        {
            get { return _sHeight; }
            set { _sHeight = value; }
        }
        /// <summary>
        /// 是否生成缩略图
        /// </summary>
        public bool IsCreateImg
        {
            get { return _IsCreateImg; }
            set { _IsCreateImg = value; }
        }
        /// <summary>
        /// 是否加水印
        /// </summary>
        public bool IsDraw
        {
            get { return _IsDraw; }
            set { _IsDraw = value; }
        }
        /// <summary>
        /// 设置加水印的方式0:文字水印模式,1:图片水印模式,2:不加
        /// </summary>
        public int DrawStyle
        {
            get { return _DrawStyle; }
            set { _DrawStyle = value; }
        }
        /// <summary>
        /// 绘制文本的X坐标(左上角)
        /// </summary>
        public int DrawString_x
        {
            get { return _DrawString_x; }
            set { _DrawString_x = value; }
        }
        /// <summary>
        /// 绘制文本的Y坐标(左上角)
        /// </summary>
        public int DrawString_y
        {
            get { return _DrawString_y; }
            set { _DrawString_y = value; }
        }
        /// <summary>
        /// 设置文字水印内容
        /// </summary>
        public string AddText
        {
            get { return _AddText; }
            set { _AddText = value; }
        }
        /// <summary>
        /// 设置文字水印字体
        /// </summary>
        public string Font
        {
            get { return _Font; }
            set { _Font = value; }
        }
        /// <summary>
        /// 设置文字水印字的大小
        /// </summary>
        public int FontSize
        {
            get { return _FontSize; }
            set { _FontSize = value; }
        }
        public int FileSize
        {
            get { return _FileSize; }
            set { _FileSize = value; }
        }
        /// <summary>
        /// 图片水印模式下的覆盖图片的实际地址
        /// </summary>
        public string CopyIamgePath
        {
            set { _CopyIamgePath = System.Web.HttpContext.Current.Server.MapPath(value); }
        }
      
        //获取文件的后缀名
        private string GetExt(string path)
        {
            return Path.GetExtension(path);
        }
        //获取输出文件的文件名。
        private string FileName(string Ext)
        {
            if (_SaveType == 0 || _InFileName.Trim() == "")
                return DateTime.Now.ToString("yyyyMMddHHmmssfff") + Ext;
            else
                return _InFileName;
        }
        //检查上传的文件的类型,是否允许上传。
        private bool IsUpload(string Ext)
        {
            Ext = Ext.Replace(".", "");
            bool b = false;
            string[] arrFileType = _FileType.Split(';');
            foreach (string str in arrFileType)
            {
                if (str.ToLower() == Ext.ToLower())
                {
                    b = true;
                    break;
                }
            }
            return b;
        }
        //上传主要部分。
        public void Open()
        {
            HttpPostedFile hpFile = _FormFile.PostedFile;
            if (hpFile == null || hpFile.FileName.Trim() == "")
            {
                _Error = 1;
                return;
            }

            string Ext = GetExt(hpFile.FileName);
            if (!IsUpload(Ext))
            {
                _Error = 2;
                return;
            }

            int iLen = hpFile.ContentLength;
            if (iLen > _MaxSize)
            {
                _Error = 3;
                return;
            }

            try
            {
             
                    if (!Directory.Exists(_SavePath))
                        Directory.CreateDirectory(_SavePath);
                    byte[] bData = new byte[iLen];
                    hpFile.InputStream.Read(bData, 0, iLen);
                    string FName;
                    FName = FileName(Ext);
                    string TempFile = "";
                    if (_IsDraw)
                    {
                        TempFile=FName.Split('.').GetValue(0).ToString() + "_temp." + FName.Split('.').GetValue(1).ToString();
                    }
                    else
                    {
                        TempFile = FName;
                    }
                    FileStream newFile = new FileStream(_SavePath + TempFile, FileMode.Create);
                    newFile.Write(bData, 0, bData.Length);
                    newFile.Flush();
                    int _FileSizeTemp = hpFile.ContentLength;
                  
                    if (_IsDraw)
                    {
                        if (_DrawStyle == 0)
                        {
                            System.Drawing.Image Img1 = System.Drawing.Image.FromStream(newFile);
                            Graphics g = Graphics.FromImage(Img1);
                            g.DrawImage(Img1, 100, 100, Img1.Width, Img1.Height);
                            Font f = new Font(_Font, _FontSize);
                            Brush b = new SolidBrush(Color.Red);
                            string addtext = _AddText;
                            g.DrawString(addtext, f, b, _DrawString_x, _DrawString_y);
                            g.Dispose();
                            Img1.Save(_SavePath + FName);
                            Img1.Dispose();


                        }
                        else
                        {
                            System.Drawing.Image image = System.Drawing.Image.FromStream(newFile);
                            System.Drawing.Image copyImage = System.Drawing.Image.FromFile(_CopyIamgePath);
                            Graphics g = Graphics.FromImage(image);
                            g.DrawImage(copyImage, new Rectangle(image.Width - copyImage.Width - 5, image.Height - copyImage.Height - 5, copyImage.Width, copyImage.Height), 0, 0, copyImage.Width, copyImage.Height, GraphicsUnit.Pixel);
                            g.Dispose();
                            image.Save(_SavePath + FName);
                            image.Dispose();
                        }
                    }

                try
                {
                    //获取图片的高度和宽度
                    System.Drawing.Image Img = System.Drawing.Image.FromStream(newFile);
                    _Width = Img.Width;
                    _Height = Img.Height;
                    //生成缩略图部分
                    if (_IsCreateImg)
                    {
                        //如果上传文件小于15k,则不生成缩略图。
                        if (iLen > 15360)
                        {

                            System.Drawing.Image newImg = Img.GetThumbnailImage(_sWidth, _sHeight, null, System.IntPtr.Zero);
                            newImg.Save(_SavePath + FName.Split('.').GetValue(0).ToString() + "_s." + FName.Split('.').GetValue(1).ToString());
                            newImg.Dispose();
                            _Iss = true;
                        }
                    }
                    if (_IsDraw)
                    {
                        if (File.Exists(_SavePath + FName.Split('.').GetValue(0).ToString() + "_temp." + FName.Split('.').GetValue(1).ToString()))
                        {
                            newFile.Dispose();
                            File.Delete(_SavePath + FName.Split('.').GetValue(0).ToString() + "_temp." + FName.Split('.').GetValue(1).ToString());
                        }
                    }
                }
                catch { }
                newFile.Close();
                newFile.Dispose();
                _OutFileName = FName;
                _FileSize = _FileSizeTemp;
                _Error = 0;
                return;
            }
            catch
            {
                _Error = 4;
                return;
            }
        }
    }
}
 

ASP图片上传源代码 ASP图片上传源代码ASP图片上传源代码 立即下载

相关推荐

ASP 的图片上传源码

ASP 的图片上传源码,里面有4个例子,基本上你能想到的上面全有的

.Net 图片上传的一个类库的源码

上传图片到服务器上是网站开发中很常用的功能,它的实现也很简单,可以新建一个上传类UpLoadAndSaveImage,这个类中包含三个函数UpLoadAndSave,CreateFilePath,SaveToServer。使用时调用下面的UpLoadAndSave函数就可以了,该函数第一个参数为要上传的图片数据,第二个参数为上传的虚拟路径(相对路径),第三个参数为上传图片的格式,第四个参...

diyao2772的博客 179

asp图片上传源码.rar

asp图片上传源码.rar,可以用来做ASP网站!!!

.NET生成WEB缩略图

 百度空间:空间用户登录后直接到【设置】,主要分析模板设置,高级设置 模板设置(自定义页面外面),主要分两种: 1.系统CSS模板、共享CSS模板   2.自定义模板(在“自定义模板”里创建自已的个性模板)高级设置(a.控制页面版式;b.控制页面内容模块的数量;c.控制页面内容模块的排放位置(即拖动))                1.       百度的页面

聚合博客室 1069

ASP图片预览区代源代码

自己用ASP做的一个小型的图片预览网页,希望对你们有些帮助,主要是用来浏览图片的一个小网页

图片上传系统

图片上传系统

WebService 客户端上传图片,服务器端接收图片并保存到本地

需求:如题,C#本地要调用Webservice接口,上传本地的照片到服务器中; 参考:客户端: https://blog.youkuaiyun.com/tiegenZ/article/details/79927670 服务端: https://www.cnblogs.com/zzzili/archive/2012/12/16/6662668.html 服务端接收的图片是base64编码的字节流: [WebMethod(Description = "上传图片")] ...

cnmeimei的博客 1012

php上传图片并预览源码

php上传图片并预览图片源码包含html静态页和php源码类页面

.NET_使用WebService保存图片到某一服务器

项目需要,两台Web服务器,一台数据库服务器,一台图片服务器,为此需要把图片保存到跟Web服务器不同的另外一台服务器上,所以决定使用WebService的方法。代码如下 usingSystem;usingSystem.Web;usingSystem.Web.Services;usingSystem.Web.Services.Protocols;usingSys...

djd10101212的博客 205

asp实现多图片上传并预览功能程序源码.zip

【程序老媛出品,必属精品,亲测校正,质量保证】 资源名:asp实现多图片上传并预览功能程序源码.zip 资源类型:程序源代码 源码说明: 基于asp的多图片上传功能 并实现预览功能的程序源码 包含完整代码和注释很适合学习借鉴 适合人群:新手及有一定经验的开发人员

最简单Web Service实现图解

练习时抓的图像做成的说明,很简洁,很实用

android多图片上传到服务器上,Android 通过webservice上传多张图片到指定服务器详解...

Android 通过webservice上传多张图片到指定服务器详解当你浏览这个的时候相信你对webservice的基本应用已经有一定的了解了,若是还没有明白的小伙伴,可以看我前面写的文章点击打开链接,这几天在开发一款app,需要上传图片到指定服务器吧,但是我刚开始以为在网上面应该有这样的好文章的吧,结果我在网络上找了好多代码,在传递图片的过程中,遇到各种bug,真是国人的东西就是喜欢复制别人的,...

weixin_42151305的博客 238

【电磁场计算】磁偶极子在外磁场中的受力

最近在总结电磁场计算公式的时候发现,关于磁偶极子受力的计算公式,在不同文献中的说明有点出入,在此特地写一篇博客澄清一下。

sky4403的博客 7475

Android 通过webservice上传多张图片到指定服务器上面

当你浏览这个的时候相信你对webservice的基本应用已经有一定的了解了,若是还没有明白的小伙伴,可以看我前面写的博客点击打开链接,这几天在开发一款app,需要上传图片到指定服务器吧,但是我刚开始以为在网上面应该有这样的好文章的吧,结果我在网络上找了好多代码,在传递图片的过程中,遇到各种bug,真是国人的东西就是喜欢复制别人的,自己不动手检验一下代码的正确性,哎,我也是无语了,然后我决定花点时间

被世界遗弃的江的博客 3963

flink新版本无bat启动文件的解决办法

flink

6 4932

智能车竞赛模糊PID代码与使用方法

本文给出了模糊PID的代码,以及模糊PID的程序使用方法、参数调整方法

piginthesouth的博客 9123

安卓实现拍照、在手机中选择图片通过webservice上传图片到服务器

安卓代码: package com.image.upload;    import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.util.Cale

yu491290710的专栏 5143

高效利用ChEMBL数据库:从靶点查询到活性数据处理的完整指南

本文提供了高效利用ChEMBL数据库的完整指南,从靶点查询到活性数据处理。详细介绍了靶点精准定位、高级过滤技巧、数据导出优化以及活性数据清洗、特征工程和可视化等实战技巧,帮助药物研发人员快速获取和处理生物活性数据,提升工作效率。

weixin_29278805的博客 798

winform 通过webservice向服务器提交图片需要注意的地方

最近一个winform项目中需要通过拍照或者上传本地文件或者截图的方式把产品图片上传到服务器,最后选择了服务器部署webservice的方式来进行。其中遇到了一些问题记录下来。 不多说,直接上服务端代码 [WebMethod(Description = "上传文件")] public bool UploadFiles(string filename, byte[] cont...

weixin_34107739的博客 130

SpotBugs实战:10大类Bug检测规则详解与代码优化实例(附避坑清单)

本文深入解析SpotBugs在Java开发中的实战应用,详细讲解10大类Bug检测规则与代码优化实例,包括NPE防御、多线程安全、性能优化等关键问题。通过具体代码示例和避坑清单,帮助开发者提升代码质量,有效集成到CI/CD流程中。

weixin_42665255的博客 196

AVS3代码阅读HPM4.0

参考AVS3代码阅读(HPM6.0)(一.整体架构以及CU划分部分代码) 版本:HPM4.0 核心文件:app_encoder.c   要做的是帧间预测,所以前面的函数先暂时不管了,挖个坑以后再填。直接从enc_pic看起。 enc_pic()    ...

CRR的博客 3187

android 通过webservice方式向服务器上传图片

通过webservice方式向服务器上传图片   private Object getData(String method, Map&lt;String, Object&gt; map) throws ConnectionException { LogUtil.info(TAG, "URL:" + URL); SoapObject request = new SoapObjec...

onepointfive的专栏 194

【ComfyUI】FluxKontext 身形调优与体态增强

AI身形调优与体态增强解决方案 该工作流通过Flux系列模型实现人物体态的智能化增强,主要特点包括: 采用UNet主体模型+双文本编码器+身形增强LoRA的架构组合 通过ReferenceLatent保持原始姿态的同时强化胸腰臀比例 完整工作流包含图像加载、文本编码、潜空间映射等8个核心节点 支持自动化的前后效果对比展示 应用优势: 保持人物自然姿态的前提下实现局部强化 支持通过Prompt精确控制增强方向 适用于摄影后期、角色美化等创作场景 输出效果稳定且风格统一 使用方

Mr数据杨 1300
上一篇: js 遮盖层
下一篇: C# 位运算权限管理
windcoldice
博客等级 码龄18年 1粉丝 11原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值