胸闷啊!关于图片上传前的裁剪问题!

Sean918 2010-03-09 11:27:29
目的是想做类似开心网那样的头像修改功能。

开心网的方式是分为2步:
1. 先上传图片;
2. 裁剪图片并保存。

我就想,为什么不能将图片裁剪放在上传前完成呢?只要知道图片的实际大小,以及裁剪区域的相对坐标,不难实现。

于是,我就开始尝试。

1. 用fileupload选择图片,此时发现,不能将 img 对象的 src 属性直接赋为客户端选到的图片。
然后找资料,发现可以用 div 的滤镜效果来实现上传前的预览:
<div id="imgPhoto" runat="server" style="filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale);" > </div>

2. 然后要想办法获取到图片的实际大小,以及后继的图片移动等操作,这个时候发现,使用div滤镜的方法无法得到实际图片的大小。我就想将fileupload选择的图片路径直接赋给img的src,然后操作img来完成剩下的动作。
这个时候发现,其实在第一步的时候已经发现不能将 img 对象的 src 属性直接赋为客户端选到的图片。

找了半天,结果估计是IE7以上版本以及FF都不自持直接将img的src属性设置为客户端的绝对路径,可能是考虑到了安全问题!

胸闷啊! 难道就没有办法实现了么?

...全文
268 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
Jelly_tracy 2010-03-10
  • 打赏
  • 举报
回复
现在很关注图片上传问题
calltaotao 2010-03-10
  • 打赏
  • 举报
回复
2楼正解,图片未上传前在客户的本地硬盘,这时服务端是没有访问权限的。
除非客户安装相应的ActiveX,开放接口给服务端,服务端才有修改的权限。
  • 打赏
  • 举报
回复
falsh 或者 silverlight 哪一个都可以。
誰是方長 2010-03-10
  • 打赏
  • 举报
回复
up
回复内容太短了!
mayonglong 2010-03-10
  • 打赏
  • 举报
回复
帮忙顶一下~
~~~
Fibona 2010-03-10
  • 打赏
  • 举报
回复
为什么不能将图片裁剪放在上传前完成呢?

你要上传之前获取图片的大小,浏览器是不允许的
鸭梨山大帝 2010-03-10
  • 打赏
  • 举报
回复
没上传前,图片是在本地硬盘的,基于安全性,JS是无法对其进行访问/写入 等操作.
如果真的想上传前剪切,就只能强迫用户浏览器安装ActiveX.

引用楼主 wxy_xiaoyu 的回复:
目的是想做类似开心网那样的头像修改功能。

开心网的方式是分为2步:
1. 先上传图片;
2. 裁剪图片并保存。

我就想,为什么不能将图片裁剪放在上传前完成呢?只要知道图片的实际大小,以及裁剪区域的相对坐标,不难实现。

于是,我就开始尝试。

1. 用fileupload选择图片,此时发现,不能将 img 对象的 src 属性直接赋为客户端选到的图片。
然后找资料,发现可以用 div 的滤镜效果来实现上传前的预览:
<div id="imgPhoto" runat="server" style="filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale);" > </div>

2. 然后要想办法获取到图片的实际大小,以及后继的图片移动等操作,这个时候发现,使用div滤镜的方法无法得到实际图片的大小。我就想将fileupload选择的图片路径直接赋给img的src,然后操作img来完成剩下的动作。
  这个时候发现,其实在第一步的时候已经发现不能将 img 对象的 src 属性直接赋为客户端选到的图片。

找了半天,结果估计是IE7以上版本以及FF都不自持直接将img的src属性设置为客户端的绝对路径,可能是考虑到了安全问题!

胸闷啊! 难道就没有办法实现了么?
Sean918 2010-03-10
  • 打赏
  • 举报
回复
天气太冷,人都没有啊?
居民小区疫情防控管理系统; net; SQL Server数据库; Tomcat; 管理员登录进入居民小区疫情防控管理系统可以查看首页、个人中心、公告信息管理、防疫知识管理、居民管理、体温上报管理、健康码上传管理、外出报备管理、返回报备管理、紧急上报管理等信息进行详细操作; 公告信息管理;在公告信息管理页面中可以对索引、公告标题、图片、发布日期等内容进行详情、修改或删除等操作。 体温上报管理,在体温上报管理页面中可以对索引、居民账号、居民姓名、性别、楼房号、年龄、手机、体温、是否咳嗽、是否乏力、是否就医、是否胸闷、其他情况、是否正常、上报时间等内容进行详情、修改或删除等操作。 健康码上传管理;在健康码上传管理页面中可以对索引、居民账号、 居民姓名、性别、年龄、手机、健康码、上传日期、当体温、是否不适、是否就医等内容进行详情、修改或删除等操作。 外出报备管理;在外出报备管理页面中可以对索引、 外出地点、外出事由、外出日期、居民账号、居民姓名、楼房号、手机、审核回复、审核状态等内容进行详情、修改或删除等操作。 返回报备管理;在返回报备管理页面中可以对索引、 出发地点、返回时间、体温、身体状况、近15天轨迹、核酸报告、经过疫区、报备时间、居民账号、居民姓名、手机、审核回复、审核状态等内容进行详情、修改或删除等操作。 紧急上报管理;在紧急上报管理页面中可以对索引、居民账号、居民姓名、楼房号、手机、上班时间、审核回复、审核状态等内容进行详情、修改或删除等操作。

110,502

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧