« 上一篇下一篇 »

PHP中图像上传遇到的问题

如果php.ini文件可以用来控制上传文件的存储位置,为什么还有必要移动文件吗?因为并不总能修改php.ini。例如,如果你在一个虚拟web服务器构建PHP应用,很可能不能改变php.ini中的位置。即使你能修改php.ini,也存在风险,因为如果需要把它移动到另一个服务器上,很可能会破坏你的应用。换句话说,应用会依赖于由php.ini控制的一个路径,而不是由你自己的PHP代码控制的路径。

当然如果上传的图像文件与先前上传的其它切屏图像同名,从而将后者覆盖。这个是因为存储在web服务器上的切屏图像使用了用户在文件上传表单域中提供的文件名。所以如果两个用户上传了文件名相同的图像文件,第一个用户的图像就会被第二个用户的图像所覆盖。这可不好。一种解决方案是为服务器上的图像文件名增加一定程度的唯一性。为此一种简单的方式是在文件名前面增加当前服务器时间。

数据库非常灵活,允许你存储二进制数据。不过,这种情况下会有一个严重的问题,网站在HTML代码中使用了上传的图像,从而可以在主页上显示。HTML<img>标记设计为引用web服务器上存储的一个图像文件,而不是一个存储在数据库中的二进制图像数据块。

« 上一篇下一篇 »