图片上传的功能简介
- 格式:doc
- 大小:54.00 KB
- 文档页数:14
上传照片的操作流程随着智能手机的普及,我们拍摄并存储了大量珍贵的照片。
然而,由于手机存储空间有限,我们通常需要将照片上传到云端或其他存储设备中。
本文将介绍上传照片的操作流程,帮助您轻松管理和保护您的珍贵回忆。
第一步:选择合适的存储平台在上传照片之前,您需要选择合适的存储平台。
目前市场上有很多选择,例如谷歌云端硬盘、iCloud、Dropbox等。
您可以根据自己的需求和偏好选择最适合您的平台。
每个平台都具有不同的上传步骤和界面,但总体流程是相似的。
第二步:创建账户如果您还没有在所选存储平台上创建账户,那么请先进行账户的注册。
通常,您需要提供您的电子邮件地址和设置一个安全密码。
确保您记住这些信息,因为它们将是您登录账户的凭证。
第三步:登录账户在您成功创建账户后,您需要登录到您的存储平台账户。
在登录界面输入您的用户名和密码,然后点击“登录”按钮。
如果您忘记了密码,通常平台提供了找回密码的选项,您可以按照提示进行操作。
第四步:选择上传照片的选项一旦成功登录到您的账户,您将看到一个用户界面,上面通常有各种选项和功能。
在这个界面中,您需要寻找一个表示上传照片的选项。
通常是一个“上传”、“照片”或者“相册”等标签,具体名称可能因平台而异。
单击该选项以进入上传照片的界面。
第五步:选择要上传的照片在上传照片的界面,您将看到一个“选择文件”或者“添加照片”的按钮。
单击该按钮以浏览您的计算机或手机文件夹中的照片,并选择您要上传的照片。
通常支持同时选择多个照片,您可以按住Ctrl键选择多张照片,或者按住Shift键选择一系列连续照片。
选择完成后,点击“确定”或者“上传”按钮。
第六步:等待上传完成一旦您选择了要上传的照片,它们将开始自动上传到您的存储空间。
上传时间的长短取决于您的照片大小和网络连接速度。
在上传过程中,请确保您的设备保持连接并不被关闭。
您可以在界面上看到上传进度条或百分比,以及估计的剩余时间。
第七步:确认上传成功上传完成后,您可以在界面上看到上传成功的通知或标志。
移动应用开发中的图片上传与处理近年来,移动应用的普及和发展使得用户越来越需要通过应用程序来上传和处理图片。
无论是社交媒体应用、电子商务应用还是健身应用,图片上传和处理功能都扮演着重要的角色。
本文将探讨移动应用开发中的图片上传与处理,包括常用的图片上传方式、图片处理的方法和效果、以及一些值得注意的细节。
一、图片上传方式在移动应用开发中,常见的图片上传方式主要包括本地上传和云存储上传。
本地上传是指将用户手机或设备上的照片直接上传到应用的服务器。
这种方式便于用户将自己的照片分享给他人,如社交媒体应用中的朋友圈功能。
开发人员可以通过调用手机系统的相册功能,让用户选择需要上传的照片,并实现上传功能。
同时,为了提高用户体验,开发人员可以采用图片压缩的方式,减小上传的文件大小,加快上传速度。
云存储上传是指将用户上传的图片存储在云端,如云服务器或云存储服务商的服务器中。
这种方式可以避免应用服务器的存储压力,同时还可以提供灵活的存储方案和高可靠性。
开发人员可以使用第三方的云存储服务,如七牛云、阿里云等,通过接口实现图片的上传和存储功能。
通过云存储上传,开发人员还可以实现图片的异步处理,比如生成缩略图或水印。
二、图片处理方法和效果在移动应用中,图片处理常用的方法包括图片缩放、裁剪和滤镜效果等。
图片缩放是将图片的尺寸进行调整,在移动应用中常用于适应不同屏幕的显示需求。
开发人员可以根据设备的屏幕分辨率,通过代码对图片进行缩放操作,以确保图片在不同设备上显示的效果相同。
同时,为了避免图片失真,可以使用等比例缩放或保持宽高比例的缩放方式。
图片裁剪是指将图片的一部分进行截取或切割。
在实际应用中,经常需要对用户上传的图片进行裁剪,以满足应用的需要。
比如,在电子商务应用中,用户上传商品图片时,可能需要裁剪为统一的尺寸,以保证页面的美观性和一致性。
开发人员可以通过调用系统提供的裁剪工具,或使用第三方库实现图片的裁剪操作。
滤镜效果是目前很流行的图片处理方式,可以通过改变图片的颜色、对比度、亮度等参数,为图片增加特效。
移动应用开发中的图片上传和处理方法在如今的移动应用开发中,图片上传和处理是一个非常常见的需求。
无论是社交应用、电商应用还是个人相册应用,图片都扮演着重要的角色。
因此,合理有效地处理和上传图片对于提升用户体验和节约网络资源都至关重要。
本文将讨论一些移动应用开发中常用的图片上传和处理方法。
一、图片上传1. 传统上传方法传统的图片上传方法是将图片直接上传至服务器。
这种方式简单直接,只需将图片转化为二进制数据并发送至服务器。
然而,由于移动设备的网络环境较为不稳定,上传大图可能会遇到网络中断或者超时的问题。
为了解决这个问题,可以考虑对图片进行压缩再上传。
2. 图片压缩上传图片压缩上传是一种广泛采用的方法,通过降低图片的质量和大小来减少上传时间和带宽占用。
常用的压缩方法有:- 缩放压缩,即调整图片的尺寸。
通过将图片的像素减少或者调整图片的宽高比例,可以有效减小图片的大小。
- 质量压缩,即降低图片的清晰度。
采用这种压缩方法,不会改变图片的尺寸,但会减小图片的文件大小。
3. 云端上传云端上传是一种将图片先上传至云端存储,再将云端链接返回给客户端的上传方法。
这种方式可以有效提高上传速度和可靠性,减少服务器负担,同时还能支持大规模并发上传。
著名的云存储服务商如七牛、阿里云等提供了丰富的API,使得开发者能够快速集成图片上传功能。
二、图片处理1. 缩略图生成在移动应用中,为了提高加载速度和节省流量,通常会使用缩略图。
缩略图是对原始图片进行压缩和裁剪得到的一张小尺寸的图片。
常用的缩略图生成方法有:- 按比例缩放,根据需求将图片等比例缩放至合适的尺寸。
- 裁剪缩放,根据需求将图片裁剪为固定尺寸。
2. 图片滤镜图片滤镜是一种常见的图片处理方式,可以让用户对图片进行各种艺术化处理。
如黑白滤镜、复古滤镜、模糊滤镜等。
这些滤镜通常由预设的滤镜矩阵和算法实现。
3. 图片水印图片水印可以保护图片的版权,防止盗用和二次编辑。
水印可以是文字水印或者图片水印。
图片上传原理
在网页或移动应用中,我们经常会遇到需要上传图片的情况,比如更换头像、
发布动态、上传相册等。
那么,图片是如何实现上传的呢?下面我们来详细介绍一下图片上传的原理。
首先,当用户在网页或应用中选择要上传的图片后,浏览器会将图片文件转换
为二进制数据流。
这个过程称为文件读取。
接着,浏览器会将这些二进制数据通过HTTP协议发送给服务器。
在这个过程中,还会涉及到一些额外的信息,比如图片
的文件名、大小、类型等。
一旦服务器接收到这些二进制数据,就会将其存储到相应的位置。
通常情况下,服务器会将图片保存在文件系统中,并在数据库中记录图片的相关信息,比如路径、大小、上传时间等。
在网页或应用中,我们需要展示已上传的图片,这时就需要从服务器获取图片
资源。
浏览器通过发送HTTP请求,从服务器获取图片的路径,然后将这些路径转换为图片进行展示。
在图片上传的过程中,还会涉及到一些安全性的考虑。
比如,服务器需要对上
传的图片进行一定的校验,以防止恶意文件的上传。
同时,也需要对图片的访问权限进行控制,确保只有有权限的用户才能查看或下载图片。
除了上述的基本原理外,图片上传还可能涉及到一些额外的功能,比如图片压缩、裁剪、水印等。
这些功能可以在图片上传的过程中进行处理,以满足不同的需求。
总的来说,图片上传的原理并不复杂,但其中涉及到的细节和安全考虑还是需
要我们在实际开发中仔细考虑和处理的。
希望通过本文的介绍,能够让大家对图片上传的原理有一个更加清晰的认识。
图片上传原理图片上传是指将本地的图片文件上传至网络服务器,以便在网页或者应用程序中进行展示或者分享。
图片上传原理涉及到客户端和服务器端的交互过程,下面将详细介绍图片上传的原理及相关知识。
首先,图片上传的原理是基于客户端和服务器端的通信机制。
用户在客户端选择要上传的图片文件后,通过浏览器或者应用程序将图片文件发送至服务器端。
在这个过程中,涉及到了HTTP协议和表单提交的相关知识。
其次,客户端通过浏览器或者应用程序选择图片文件后,将图片文件通过HTTP协议发送至服务器端。
HTTP协议是一种用于传输超文本数据的应用层协议,它是建立在TCP/IP协议之上的。
通过HTTP协议,客户端可以向服务器发送请求,并获取服务器的响应。
然后,客户端将图片文件通过表单提交的方式发送至服务器端。
表单是HTML中的一种交互元素,它可以包含各种类型的输入控件,比如文本框、下拉框、文件上传等。
当用户在表单中选择了要上传的图片文件后,通过表单提交的方式将图片文件发送至服务器端。
接着,服务器端接收到客户端发送的图片文件后,会对图片文件进行相应的处理。
服务器端可以对图片文件进行格式转换、大小压缩、水印添加等操作,以满足不同的需求。
在这个过程中,涉及到了服务器端的存储和处理技术。
最后,服务器端将处理后的图片文件保存在指定的位置,并返回一个访问路径给客户端。
客户端可以通过访问路径来获取服务器端保存的图片文件,并在网页或者应用程序中进行展示或者分享。
在这个过程中,涉及到了图片文件的访问和展示技术。
总结来说,图片上传的原理涉及到客户端和服务器端的通信机制,通过HTTP协议和表单提交的方式将图片文件发送至服务器端,然后服务器端对图片文件进行处理并保存,并返回一个访问路径给客户端。
这样,客户端就可以通过访问路径来获取服务器端保存的图片文件,实现在网页或者应用程序中的展示或者分享。
这就是图片上传的原理及相关知识。
图片上传的功能简介图片上传的功能简介[ 日期:2004-05-11 ] [ 来自:zt ][收藏此页][打印]图片上传的功能简介及web.config设置(自动生成所略图)程序代码:功能:1。
把图片文件(JPG GIF PNG)上传,2。
保存到指定的路径(在web.config中设置路径,以文件的原有格式保存),3。
并自动生成指定宽度的(在web.config中设置宽度)4。
和指定格式的(在web.config中指定缩略图的格式,支持GIF,JPG,PNG)5。
和原图比例相同的缩略图(根据宽度和原图的宽和高计算所略图的高度)6。
可以判断是否已经存在文件7。
如果不覆盖,则给出错误8。
如果选中"覆盖原图"checkbox,则覆盖原图。
9。
可以根据要求,在webform上设置1个以上的file input和相应的checkbox10。
并在文件上传完毕后,显示原图的文件名,尺寸,字节,和11。
缩略图的文件名尺寸,以及12。
显示原图和缩略图。
13。
缩略图的文件名格式,以便与管理:大图(原图):图片分类代号_图片代表的日期_图片原有文件名.原有格式(如:28_2002-1-28_test.jpg)缩略图:图片分类代号_图片代表的日期_图片原有文件名.原有格式_thumb.指定的缩略图格式(如:28_2002-1-28_test.jpg_thumb.gif)----------------------web.config文件中的相应设置:... ...。
jimageupload的用法摘要:一、概述jimageupload的作用二、jimageupload的用法介绍1.安装与配置2.上传图片方法3.图片管理功能4.高级设置与应用场景三、实战案例分享四、总结与建议正文:【概述jimageupload的作用】jimageupload是一款便捷的图片上传与管理工具,适用于各种网站、博客和在线平台。
它具有轻量级、易用性强、功能全面等特点,可以帮助用户快速地上传和管理图片。
本文将详细介绍jimageupload的用法,带你轻松掌握这款优秀的开源项目。
【jimageupload的用法介绍】1.安装与配置在使用jimageupload之前,首先需要在你的项目中引入它。
你可以通过以下方式进行安装:```composer require jimageupload/jimageupload```安装完成后,按照官方文档进行配置。
配置过程中,你需要设置上传目录、图片处理工具、允许上传的文件类型等参数。
2.上传图片方法在配置完成后,你可以通过以下代码实现图片上传功能:```phpuse JimageuploadJimageupload;// 实例化Jimageupload类$jimageupload = new Jimageupload();// 设置上传参数$params = ["upload_dir" => "./uploads/", // 上传目录"allowed_types" => "jpg,png,gif", // 允许上传的文件类型"max_filesize" => 1000000, // 最大文件大小,单位:字节];// 初始化上传$jimageupload->init($params);// 开始上传图片if ($jimageupload->upload()) {echo "图片上传成功!";} else {echo "图片上传失败!";}```3.图片管理功能jimageupload内置了图片管理功能,你可以通过以下方法对已上传的图片进行操作:```php// 获取已上传图片列表$images = $jimageupload->get_uploads();// 删除图片$jimageupload->delete_image("image_name.jpg");// 调整图片大小$jimageupload->resize_image("image_name.jpg", 100, 100);// 生成缩略图$jimageupload->create_thumbs("image_name.jpg", 100, 100);```4.高级设置与应用场景jimageupload还提供了许多高级设置,如水印、裁剪、图片滤镜等。
多媒体信息发布系统多媒体信息发布系统简介多媒体信息发布系统是一种集文字、图片、音频、视频等多种媒体形式为一体的信息发布平台,旨在让用户能够快速、方便地发布与分享各种多媒体信息,以满足用户对信息的多样化需求。
该系统广泛适用于各类机构、企业、学校、政府等领域,可以帮助他们更便捷地进行信息传递与合作交流,提高信息的传播效率,并促进与用户之间的沟通和互动。
系统功能1. 文字信息发布用户可以通过系统的文字信息发布功能,完成文字文档、公告、新闻、发布会等信息的发布。
该功能通过图文编辑器进行排版和编辑,方便用户上传、调整、删除及修改文章内容,使其文风简洁、明了、优美。
2. 图片信息发布系统允许用户发布与图片相关的信息,如图片新闻、图片集、企业风采等。
用户可以通过上传图片的方式,实现图片和文字的有机结合,达到更好的阅读体验。
在发布图片信息时,系统还支持图片缩略图、瀑布流排版、打水印等功能,使信息呈现更加美观。
3. 音频信息发布用户可以通过系统发布与音频相关的信息,如音频新闻、广播节目、学术讲座等。
用户可以通过上传音频文件的方式,将音频信息与文字、图片等多媒体形式有机结合,吸引更多用户的关注与分享。
4. 视频信息发布系统支持用户发布与视频相关的信息,如视频新闻、宣传片、培训课程等。
用户可以通过上传视频文件的方式,实现高清、流畅的视频播放,并支持视频封面、视频描述、评论等功能,提升视频信息的传播效果和用户体验。
5. 数据统计分析系统支持对发布的信息进行统计分析,包括浏览量、点赞数、评论数、分享数等指标。
通过数据分析,系统帮助用户全面了解信息的传播效果,实现信息管理和优化。
6. 个性化定制系统支持用户进行个性化设置和定制,如个性化的皮肤主题、信息分类目录、站点客户端等。
用户可以自由选择功能模块,定制企业个性化的信息发布平台,从而提升品牌形象和用户体验。
系统优势1. 多媒体信息发布,增强信息传递效果系统支持多媒体形式的信息发布,方便用户上传不同类型的文件,可以更好地展示产品、服务、成果等信息,吸引更多用户的关注和分享。
上传图片至数据库内功能的实现(OLE对象)一般的无组件上传类,其上传过程是将图片先保存到指定文件夹,与此同时将该路径保存至数据库字段的。
显示图片则是根据数据库表中的路径字段对应显示的。
当然有关图片的管理,比如删除:只删除了路径,实际的图片需要根据该路径通过FSO进行删除……那有没有这样一种情况:将图片直接作为一个字段的值保存。
对图片的操作就象是对数据字段的操作一样熟练。
答案是肯定的,只是将该字段的类型设为OLE对象知识点:OLE对象字段用来存储诸如Microsoft Word或Microsoft EXCEL文档、图片、声音的数据以及在别的程序中创建的其他类型的二进制数据。
OLE对象可以链接或嵌入到Microsoft Access表的字段中。
一、设计数据库testimg.mdb为方便调试,设计表imgurl,其中两个字段:id(自动编号、关键字)、img(OLE对象)二、连接数据库文件conn.asp三、提供上传图片的表单页面upload.html四、接受数据并添加记录页upload.asp<!--#include file="conn.asp"--><%formsize=request.totalbytesformdata=request.binaryread(formsize)bncrlf=chrB(13)&chrB(10)divider=leftB(formdata,clng(instrb(formdata,bncrlf))-1) datastart=instrb(formdata,bncrlf&bncrlf)+4dataend=instrb(datastart+1,formdata,divider)-datastart mydata=midb(formdata,datastart,dataend)set rs=server.createobject("ADODB.recordset")rs.open "SELECT * FROM imgurl",conn,3,3rs.addnewrs("img").AppendChunk myDatars.updaters.closeset rs=nothingset conn=nothingresponse.redirect "index.asp"%>五、提取数据库表中图片字段内容以做显示图片页showimg.asp六、显示图片的index.asp。
jimageupload的用法(最新版)目录1.jimageupload 的简介2.jimageupload 的安装与配置3.jimageupload 的基本使用方法4.jimageupload 的高级功能与应用5.jimageupload 的优点与局限性正文【1.jimageupload 的简介】jimageupload 是一款基于 Java 的开源图片上传插件,适用于各种Web 应用程序。
它可以轻松实现图片的上传、裁剪、缩放等操作,为网站开发者提供了便捷的图片处理解决方案。
【2.jimageupload 的安装与配置】安装 jimageupload 非常简单,只需将其 JAR 文件添加到应用程序的类路径中即可。
配置方面,jimageupload 提供了丰富的配置选项,可以通过 XML 文件进行设置。
开发者可以根据需要调整参数,例如上传文件的大小限制、临时文件存储路径等。
【3.jimageupload 的基本使用方法】使用 jimageupload 进行图片上传,主要分为以下几个步骤:1) 在 HTML 页面中创建一个表单,包含一个文件输入框,用于选择要上传的图片文件。
2) 在服务器端,处理上传请求,使用 jimageupload 的相关类来处理上传的图片。
3) 对上传成功的图片进行处理,例如保存到服务器、生成缩略图等。
【4.jimageupload 的高级功能与应用】除了基本的上传功能,jimageupload 还提供了许多高级功能,如图片裁剪、缩放、旋转等。
这些功能可以帮助开发者轻松实现图片的处理和优化,提高用户体验。
【5.jimageupload 的优点与局限性】优点:1) 开源免费,使用成本低。
2) 功能丰富,满足大部分图片上传需求。
3) 易于集成,支持多种服务器环境。
局限性:1) 相较于一些开源图片处理库,jimageupload 的文档较少,学习成本较高。
2) 对于一些特殊的图片处理需求,可能需要额外的自定义开发。
图片上传的功能简介 [ 日期:2004-05-11 ] [ 来自:zt ][收藏此页][打印]图片上传的功能简介及web.config设置(自动生成所略图)程序代码:功能:1。
把图片文件(JPG GIF PNG)上传,2。
保存到指定的路径(在web.config中设置路径,以文件的原有格式保存),3。
并自动生成指定宽度的(在web.config中设置宽度)4。
和指定格式的(在web.config中指定缩略图的格式,支持GIF,JPG,PNG)5。
和原图比例相同的缩略图(根据宽度和原图的宽和高计算所略图的高度)6。
可以判断是否已经存在文件7。
如果不覆盖,则给出错误8。
如果选中"覆盖原图"checkbox,则覆盖原图。
9。
可以根据要求,在webform上设置1个以上的file input和相应的checkbox10。
并在文件上传完毕后,显示原图的文件名,尺寸,字节,和11。
缩略图的文件名尺寸,以及12。
显示原图和缩略图。
13。
缩略图的文件名格式,以便与管理:大图(原图):图片分类代号_图片代表的日期_图片原有文件名.原有格式(如:28_2002-1-28_test.jpg)缩略图:图片分类代号_图片代表的日期_图片原有文件名.原有格式_thumb.指定的缩略图格式(如:28_2002-1-28_test.jpg_thumb.gif)----------------------web.config文件中的相应设置:<?xml version="1.0" encoding="utf-8" ?><configuration><system.web>......</system.web><appSettings>............//FePicSavePath 图片保存在服务器上的实际路径<add key="FePicSavePath" value="d:/myroot/myapp/content/fepics/" />//FePicWebPath 图片的网络路径,用于显示图片<add key="FePicWebPath" value="/fepics/" />//FePicThumbWidth 缩略图的宽度<add key="FePicThumbWidth" value="115" />//所略图的格式<add key="FePicThumbFormat" value="gif" /></appSettings></configuration>图片上传的数据库部分(自动生成所略图)程序代码:public int FePicDataSet(string strPicTitle, string strPicDate, string strPicName, int intPicType, st ring strPicIntro, string strThumbnail, int opID){//string strPicTitle,//string strPicDate,//string strPicName,//int intPicType,//string strPicIntro,//string strPicName,//string strThumbnail,//int opIDSqlConnection myConnection = new SqlConnection(ConfigurationSettings.AppSettings[" ConnectionString"]);SqlCommand myCommand = new SqlCommand("mag_FePicDataSet", myConnection); // Mark the Command as a SPROCmandType = CommandType.StoredProcedure;// Add Parameters to SPROCSqlParameter parameterUserId = new SqlParameter("@opID", SqlDbType.Int);parameterUserId.Value = opID;myCommand.Parameters.Add(parameterUserId);SqlParameter parameterPicTitle = new SqlParameter("@picTitle", SqlDbType.Char, 30); parameterPicTitle.Value = strPicTitle;myCommand.Parameters.Add(parameterPicTitle);SqlParameter parameterPicDate = new SqlParameter("@picDate", SqlDbType.Char, 10); parameterPicDate.Value = strPicDate;myCommand.Parameters.Add(parameterPicDate);SqlParameter parameterPicName = new SqlParameter("@picName", SqlDbType.Char, 5 0);parameterPicName.Value = strPicName;myCommand.Parameters.Add(parameterPicName);SqlParameter parameterPicType = new SqlParameter("@picType", SqlDbType.Int);parameterPicType.Value = intPicType;myCommand.Parameters.Add(parameterPicType);SqlParameter parameterPicIntro = new SqlParameter("@picIntro", SqlDbType.Char, 25 5);parameterPicIntro.Value = strPicIntro;myCommand.Parameters.Add(parameterPicIntro);SqlParameter parameterThumbnail = new SqlParameter("@thumbnail", SqlDbType.Char , 50);parameterThumbnail.Value = strThumbnail;myCommand.Parameters.Add(parameterThumbnail);SqlParameter parameterHostAddress = new SqlParameter("@opIP", SqlDbType.Char, 1 5);parameterHostAddress.Value = erHostAddress;myCommand.Parameters.Add(parameterHostAddress);//SqlParameter parameterRID = new SqlParameter("@returnID", SqlDbType.Int);//parameterReturnUserID.Value = -1;//parameterRID.Direction = ParameterDirection.Output;//myCommand.Parameters.Add(parameterRID);// Execute the command in a try/catch to catch duplicate username errorstry{// Open the connection and execute the CommandmyConnection.Open();myCommand.ExecuteNonQuery();}catch{// failed to create a new userreturn -1;}finally{// Close the Connectionif (myConnection.State == ConnectionState.Open)myConnection.Close();}return 1;}图片上传的Codebehind(自动生成所略图)程序代码:using System;using System.Collections;using ponentModel;using System.Configuration;using System.Data;using System.Drawing;using System.Web;using System.Web.SessionState;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.HtmlControls;using System.Text;using cj168.util;namespace cj168.Web.Mag.Admins.FeData{/// <summary>/// Summary description for fedata./// </summary>public class feUploadPic : System.Web.UI.Page{protected System.Web.UI.WebControls.TextBox txtboxPicTitle;protected System.Web.UI.WebControls.Calendar calPicDate;protected System.Web.UI.WebControls.DropDownList ddlPicType;protected System.Web.UI.WebControls.TextBox txtboxPicIntro;protected System.Web.UI.HtmlControls.HtmlInputFile filePicName;protected System.Web.UI.WebControls.Button btnSubmit;protected bel lblPicInfo;protected System.Web.UI.WebControls.TextBox txtboxPicDate;protected System.Web.UI.WebControls.RequiredFieldValidator Requiredfieldvalidator1;protected System.Web.UI.WebControls.RegularExpressionValidator vldCatName;protected System.Web.UI.WebControls.RequiredFieldValidator Requiredfieldvalidator2;protected System.Web.UI.WebControls.CustomValidator CustomValidator1;protected System.Web.UI.WebControls.RegularExpressionValidator RegularExpressionValid ator1;protected System.Web.UI.WebControls.HyperLink hlkOriPic;protected System.Web.UI.WebControls.HyperLink hlkNewPic;protected System.Web.UI.WebControls.RegularExpressionValidator Regularexpressionvalid ator2;protected System.Web.UI.WebControls.RegularExpressionValidator Regularexpressionvalid ator3;protected System.Web.UI.WebControls.CheckBoxList checkboxlistRewrite;private void Page_Load(object sender, System.EventArgs e){// Put user code to initialize the page here//if(Page.IsPostBack)//txtboxPicDate.Text = calPicDate.SelectedDate.ToString();if(!Page.IsPostBack){Bind2DropDownListPicType();//for(int i = 0;i < Request.Files.Count; i++)//{// checkboxlistRewrite.Items.Selected = false;//}}}public void Bind2DropDownListPicType(){cj168.DataAccess.Admins admins = new cj168.DataAccess.Admins();DataSet ds = admins.FePicTypeGet();//ddlPicType.DataSource = ;DataView dv = new DataView(ds.Tables["PicType"]);DataRowView drv = dv.AddNew();//DataColumnView dcv = dv.AddNew();drv["Title"] = "请选择";drv["fePicTypeID"] = "0";drv.EndEdit();dv.Sort = "fePicTypeID";ddlPicType.DataSource = dv;ddlPicType.DataBind();}public void UploadFile(object sender, System.EventArgs e){string imgNameOnly, imgNameNoExt, imgExt;string imgThumbnail;int erroNumber = 0;System.Drawing.Image oriImg, newImg;string strFePicSavePath = ConfigurationSettings.AppSettings["FePicSavePath"].ToStri ng();string strFePicThumbFormat = ConfigurationSettings.AppSettings["FePicThumbForma t"].ToString().ToLower();int intFeThumbWidth = Int32.Parse(ConfigurationSettings.AppSettings["FePicThumb Width"]);string fileExt;string strPicTitle = txtboxPicTitle.Text;string strPicIntro = txtboxPicIntro.Text;string strPicDate = txtboxPicDate.Text;int intPicType = Int32.Parse(ddlPicType.SelectedItem.Value);string strPicType = intPicType.ToString() + "_" + DateTime.Now.Date.ToShortDateSt ring() + "_";string strFePicWebPath = ConfigurationSettings.AppSettings["FePicWebPath"];cj168.DataAccess.Admins admins = new cj168.DataAccess.Admins();//if(admins.FePicTypeSet(textboxTitle.Text,0) < 0)// lblAddPicInfo.Text = "操作失败:已经存在相同名称类型,请修改";//else// lblAddPicInfo.Text = "操作成功";StringBuilder picInfo = new StringBuilder();if(Page.IsValid){for(int i = 0;i < Request.Files.Count; i++){HttpPostedFile PostedFile = Request.Files;fileExt = (System.IO.Path.GetExtension(PostedFile.FileName)).ToString().ToLower ();//5-test.jpgimgNameOnly = strPicType + System.IO.Path.GetFileName(PostedFile.FileName); if(fileExt == ".jpg" || fileExt == ".gif" || fileExt == ".png"){if(System.IO.File.Exists(strFePicSavePath + imgNameOnly) && (checkboxlistRe write.Items.Selected == false)){erroNumber = erroNumber + 1;picInfo.Append("<b>错误:</b>文件("+ (i+1) +") " + imgNameOnly + " 已经存在,请修改文件名<br>" );}}else{erroNumber = erroNumber + 1;if(fileExt == "")picInfo.Append("<b>错误:</b>请选择文件<br>" );elsepicInfo.Append("<b>错误:</b>文件("+ (i+1) +") " + imgNameOnly + " 扩展名 " + fileExt + " 不被许可<br>" );}}if(erroNumber > 0){picInfo.Append("<font color=red>全部操作均未完成,请修改错误,再进行操作</font><br>");hlkOriPic.ImageUrl = "";hlkOriPic.ToolTip = "";hlkNewPic.ImageUrl = "";hlkNewPic.ToolTip = "";}else{for(int i = 0;i < Request.Files.Count; i++){HttpPostedFile PostedFile = Request.Files;imgNameOnly = strPicType + System.IO.Path.GetFileName(PostedFile.FileNam e);imgNameNoExt = System.IO.Path.GetFileNameWithoutExtension(PostedFile.File Name);imgExt = System.IO.Path.GetExtension(PostedFile.FileName).ToString().ToLow er();oriImg = System.Drawing.Image.FromStream(PostedFile.InputStream);newImg = oriImg.GetThumbnailImage(intFeThumbWidth, intFeThumbWidth * o riImg.Height/oriImg.Width,null,new System.IntPtr(0));switch(imgExt){//case ".jpeg":case ".jpg":oriImg.Save(strFePicSavePath + imgNameOnly , System.Drawing.Imagin g.ImageFormat.Jpeg);break;case ".gif":oriImg.Save(strFePicSavePath + imgNameOnly , System.Drawing.Imagin g.ImageFormat.Gif);break;case ".png":oriImg.Save(strFePicSavePath + imgNameOnly , System.Drawing.Imagin g.ImageFormat.Png);break;}//oriImg.Save(ConfigurationSettings.AppSettings["FePicSavePath"] + imgName NoExt + ".jpg", System.Drawing.Imaging.ImageFormat.Jpeg);switch(strFePicThumbFormat){//jpeg format can get the smallest file size, and the png is the largest size //case "jpeg":case "jpg":newImg.Save(strFePicSavePath + imgNameOnly + "_thumb.jpg",System.Drawing.Imaging.ImageFormat.Jpeg);imgThumbnail = imgNameOnly + "_thumb.jpg";break;case "gif":newImg.Save(strFePicSavePath + imgNameOnly + "_thumb.gif",System. Drawing.Imaging.ImageFormat.Gif);imgThumbnail = imgNameOnly + "_thumb.gif";break;case "png":newImg.Save(strFePicSavePath + imgNameOnly + "_thumb.png",System .Drawing.Imaging.ImageFormat.Png);imgThumbnail = imgNameOnly + "_thumb.png";break;default:newImg.Save(strFePicSavePath + imgNameOnly + "_thumb.jpg",System. Drawing.Imaging.ImageFormat.Jpeg);imgThumbnail = imgNameOnly + "_thumb.jpg";break;}//switchpicInfo.Append("<b>文件名:</b>" + imgNameOnly + " ( " + oriImg.Width + " x " + oriImg.Height + " ) " + PostedFile.Cont entLength/1024 + "KB<br>");picInfo.Append("<b>缩略图名:</b>" + imgThumbnail + " ( " + newImg.Width + " x " + newImg.Height + " )<br><br>");hlkOriPic.ImageUrl = strFePicWebPath + imgNameOnly;hlkOriPic.ToolTip = "◆原图◆n文件名:" + imgNameOnly + "n尺寸:" + oriImg.Width + " x " + oriImg.Height + "n字节:" + PostedFile.ContentLength/1024 + "KB"; hlkNewPic.ImageUrl = strFePicWebPath + imgThumbnail;hlkNewPic.ToolTip = "◆缩略图◆n文件名:" + imgThumbnail + "n尺寸:" + newImg.Width + " x " + newImg.Height;oriImg.Dispose();newImg.Dispose();picInfo.Append("<font color=red>图片上传成功</font><br>");if(admins.FePicDataSet(strPicTitle, strPicDate, imgNameOnly, intPicType, strPicI ntro, imgThumbnail,0) < 0)picInfo.Append("<font color=red>保存信息到数据库失败</font><br>");elsepicInfo.Append("<font color=red>保存信息到数据库成功</font><br>");}//forpicInfo.Append("<font color=red>所有操作成功</font><br>");}// if erronumber = 0}else{picInfo.Append("<font color=red>有错误,请检查。