关于PHP的多图下传和处理,麻烦高手写一段代码供研习

WBOY
Libérer: 2016-06-13 13:18:31
original
832 Les gens l'ont consulté

关于PHP的多图上传和处理,麻烦高手写一段代码供研习
需求如下:
一个产品名下面有4张图片。图片上传到当前路径的“upimg”文件夹中,图片路径要存到mysql对应的字段里。
  所以我在做产品资料填入的时候,针对同一个产品名,必须上传4个图片。
   
---------数据库结构:
数据库名:Atest,
表名:prodcut,
表对应的字段:pname,pic1,pic2,pic3,pic4...(均为char类型)

--------HTML的表单我如此设计:

HTML code
<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

-->
Copier après la connexion
产品名称:
产品图片1:
产品图片2:
产品图片3:
产品图片4:



需要注意的几点:  
  1,在数据库里,一个产品名+四个图片路径组成一条数据,而不是存为多条数据。
  2,必须对图片文件重命名,否则会出现重复;
  3,上传文件前要检测图片格式是否为jpg,bmp,gif或者png,否则不上传;
  4,上传图片的体积不能超过2M;即:name="MAX_FILE_SIZE" value="2000000"
  
麻烦补充一段代码:upload.php,谢谢!

------解决方案--------------------
我是这么解决的:
一张成功以后,把上传的类重命名,一个图片用一个类,4个文件就用四个类。。。。。成功实现了
我这是最笨的方法。等高手出用数组循环实现的方法中......



单张图片上传的类:uploadclass.php(对应多图片上传时,对其改名,并对其中的代码段做相应变更,即可多次引用,多张上传)

PHP code

<?php $uploaddir = "../images/upfiles/";//图片存放文件夹,如果不存在,就创建(得有权限)
 if(!file_exists($uploaddir))
 {
    mkdir($uploaddir);
 }
$type=array("jpg","gif","bmp","jpeg","png");//限定上传文件的格式
$patch="testupload/";//上传类所在的路径---这个可选填

function fileext($filename)//取得上传文件的扩展名(上传多个图片时,需要分别对其重命名,否则会报错说函数多次声明违法)
{
return substr(strrchr($filename, '.'), 1);
}

function random($length)//取得随机数,好像是用哈希算法得到的(上传多个图片时,需要分别对其重命名,否则会报错说函数多次声明违法)
{
$hash = 'CR-';
$chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz';
$max = strlen($chars) - 1;
mt_srand((double)microtime() * 1000000);
for($i = 0; $i < $length; $i++)
{
$hash .= $chars[mt_rand(0, $max)];
}
return $hash;
}

$a=strtolower(fileext($_FILES['pic']['name']));//这里的pic就是你HTML表单里的图片域的name="pic"(上传多个图片时,需要分别对其重命名,否则会报错说函数多次声明违法)
if(!in_array(strtolower(fileext($_FILES['pic']['name'])),$type))//这里记得对应改函数名和pic的名字
{
$text=implode(",",$type);
echo "You can only upload the following types of files:",$text,"<br /> <a href="upload_pro.php">return and try again?click me</a>";
exit;
}
else{
$filename=explode(".",$_FILES['pic']['name']);//同上,pic需要对应改名
do
{
$filename[0]=random(10); //用到函数random时,一样要对应改名
$name=implode(".",$filename);
//$name1=$name.".Mcncc";
$uploadfile=$uploaddir.$name;//这个$uploadfile就是你要插入数据库相应字段的图片路径,需要相应做变化
}

while(file_exists($uploadfile));//函数名需要对应最变更

if (move_uploaded_file($_FILES['pic']['tmp_name'],$uploadfile))//PIC需要对应最变更
{
if(is_uploaded_file($_FILES['pic']['tmp_name']))//pic需要对应做变更
{

echo "the Images Upload failed!";
}
else
{
echo "<center>Your file has been uploaded: </center><br><center><img  src="%24uploadfile" alt=" 关于PHP的多图下传和处理,麻烦高手写一段代码供研习 " ></center>";//src=后面也要对应最变更
echo "<br><center><a href="upload_pro.php">Continue to upload</a></center>";
}
}
}
?>
<br><font color="#e78608">------解决方案--------------------</font><br>一个测试例
Copier après la connexion
PHP code
 
Copier après la connexion
   
文件1:  
Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal