【发布时间】:2017-03-21 21:54:21
【问题描述】:
您好,我正在开发一个网站,用户可以在其中上传他/她的个人资料图片。我的上传页面有一个 img 标签,因此用户可以在选择这张图片后在上传之前预览他们的图片的外观,事情是稍后将从数据库中获取图片的名称。这是我的 sn-p
<img id="imgs" src="http://placehold.it/200x200" alt="your image"/>
我的上传器是这样的
if ( !!$_FILES['file']['tmp_name'] ) // is the file uploaded yet?
{
$info = explode('.', strtolower( $_FILES['file']['name']) ); // whats the extension of the file
$temp = explode(".",$_FILES["file"]["name"]);
$filename = rand(1,9999) . '.' .end($temp);
if ( in_array( end($info), $allow) ) // is this file allowed
{
if ( move_uploaded_file( $_FILES['file']['tmp_name'], $todir . $filename ) )
{
}
}
else
{ }
}
顺便说一句,这个上传器脚本来自教程,所以是的,您可能会在这里发现几个安全问题和其他问题..
我遇到的问题是,当我上传尺寸为 200x200 的图像时,图像看起来很好,因为在我的 css 中,我定义了 imgs,宽度和高度都设置为 200 像素,但如果我上传了其他图像不符合我在 css 上设置的宽度和高度,如果图像更大,则图像会被拉伸
有什么想法可以解决这个问题吗? 我还尝试直接在 img 上定义尺寸,结果显然相同 我可以只用 css 解决这个问题吗?
【问题讨论】:
-
您是否正在寻找对 img 标签的 CSS 修复?如果是这样,#imgs { width:200px, height:200px; } 或
-
是的,如果可能的话..
-
您可以使用 div 而不是 img,使用不重复的背景图像并包含或覆盖背景大小。这有点低效,因为用户可能会上传超大文件,因此加载速度会变慢。
-
尽可能地避免现场裁剪,这就是为什么我没有考虑使用 jquery fyi 伙计们.. 但如果真的没有其他办法,我可能会去尽管如此.. :(
-
这只是纯 css 我的朋友。其他选项是服务器端裁剪,但这涉及更多工作。请指教。