上傳兩張圖片,但最終只有一張圖片上傳了
核心代碼
$path="../uploads";
? ? $uploadFiles=uploadFile($path);//保存在image_800文件按夾。
? ? $pName=$_REQUEST['pName'];//
? ? $cId=$_REQUEST['cId'];
? ? $pSn=$_REQUEST['pSn'];//商品貨號
? ? $pNumber=$_REQUEST['pNum'];
? ? $price=$_REQUEST['mPrice'];
? ? $pDesc=$_REQUEST['pDesc'];//商品描述
? ? $pubtime=time();
? ? $sql="insert into product(pName,pSn,pNumber,Price,pDesc,pubTime,cId)?
values('{$pName}','{$pSn}',{$pNumber},'{$price}','{$pDesc}',{$pubtime},{$cId})";
? ? if(is_array($uploadFiles)&&$uploadFiles)
? ? {
? ? ? ? foreach ($uploadFiles as $key => $uploadFile){//產生縮略圖
? ? ? ? ? ? thumb($path."/".$uploadFile['name'], '../image_50/'.$uploadFile['name'],50,50);
? ? ? ? ? ? thumb($path."/".$uploadFile['name'], '../image_220/'.$uploadFile['name'],220,220);
? ? ? ? ? ? thumb($path."/".$uploadFile['name'], '../image_350/'.$uploadFile['name'],350,350);
? ? ? ? ? }
? ? }
? ? $pId=insert($sql);
upload.func.php
<?php
require_once 'string.func.php';
header("content-type:text/html;charset=utf-8");
/**
?* 構建上傳文件信息
?* @return array
?*/
function buildInfo(){
? ? $i=0;
? ? foreach($_FILES as $v){
? ? ? ? //單文件
? ? ? ? if(is_string($v['name'])){
? ? ? ? ? ? $files[$i]=$v;
? ? ? ? ? ? $i++;
? ? ? ? }else{
? ? ? ? ? ? //多文件
? ? ? ? ? ? foreach($v['name'] as $key=>$val){
? ? ? ? ? ? ? ? $files[$i]['name']=$val;
? ? ? ? ? ? ? ? $files[$i]['size']=$v['size'][$key];
? ? ? ? ? ? ? ? $files[$i]['tmp_name']=$v['tmp_name'][$key];
? ? ? ? ? ? ? ? $files[$i]['error']=$v['error'][$key];
? ? ? ? ? ? ? ? $files[$i]['type']=$v['type'][$key];
? ? ? ? ? ? ? ? $i++;
? ? ? ? ? ? }
? ? ? ? }
? ? }
? ? return $files;
}
function uploadFile($path="uploads",$allowExt=array("gif","jpeg","png","jpg","wbmp"),$maxSize=2097152,$imgFlag=true){
? ? if(!file_exists($path)){
? ? ? ? mkdir($path,0777,true);
? ? }
? ? $i=0;
? ? $files=buildInfo();
? ? foreach($files as $file){
? ? ? ? if($file['error']===UPLOAD_ERR_OK){
? ? ? ? ? ? $ext=getExt($file['name']);
? ? ? ? ? ? //檢測文件的擴展名
? ? ? ? ? ? if(!in_array($ext,$allowExt)){
? ? ? ? ? ? ? ? exit("非法文件類型");
? ? ? ? ? ? }
? ? ? ? ? ? //校驗是否是一個真正的圖片類型
? ? ? ? ? ? if($imgFlag){
? ? ? ? ? ? ? ? if(!getimagesize($file['tmp_name'])){
? ? ? ? ? ? ? ? ? ? exit("不是真正的圖片類型");
? ? ? ? ? ? ? ? }
? ? ? ? ? ? }
? ? ? ? ? ? //上傳文件的大小
? ? ? ? ? ? if($file['size']>$maxSize){
? ? ? ? ? ? ? ? exit("上傳文件過大");
? ? ? ? ? ? }
? ? ? ? ? ? if(!is_uploaded_file($file['tmp_name'])){
? ? ? ? ? ? ? ? exit("不是通過HTTP POST方式上傳上來的");
? ? ? ? ? ? }
? ? ? ? ? ? $filename=getUniName().".".$ext;
? ? ? ? ? ? $destination=$path."/".$filename;
? ? ? ? ? ? if(move_uploaded_file($file['tmp_name'],$destination)){
? ? ? ? ? ? ? ? $file['name']=$filename;
? ? ? ? ? ? ? ?// unset($file['error'],$file['tmp_name'],$file['size'],$file['type']);
? ? ? ? ? ? ? ? $uploadedFiles[$i]=$file;
? ? ? ? ? ? ? ? $i++;
? ? ? ? ? ? }
? ? ? ? }else{
? ? ? ? ? ? switch($file['error']){
? ? ? ? ? ? ? ? case 1:
? ? ? ? ? ? ? ? ? ? $mes="超過了配置文件上傳文件的大小";//UPLOAD_ERR_INI_SIZE
? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? case 2:
? ? ? ? ? ? ? ? ? ? $mes="超過了表單設置上傳文件的大小"; //UPLOAD_ERR_FORM_SIZE
? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? case 3:
? ? ? ? ? ? ? ? ? ? $mes="文件部分被上傳";//UPLOAD_ERR_PARTIAL
? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? case 4:
? ? ? ? ? ? ? ? ? ? $mes="沒有文件被上傳";//UPLOAD_ERR_NO_FILE
? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? case 6:
? ? ? ? ? ? ? ? ? ? $mes="沒有找到臨時目錄";//UPLOAD_ERR_NO_TMP_DIR
? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? case 7:
? ? ? ? ? ? ? ? ? ? $mes="文件不可寫";//UPLOAD_ERR_CANT_WRITE;
? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? case 8:
? ? ? ? ? ? ? ? ? ? $mes="由于PHP的擴展程序中斷了文件上傳";//UPLOAD_ERR_EXTENSION
? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? }
? ? ? ? ? ? echo $mes;
? ? ? ? }
? ? }
? ? return $uploadedFiles;
}
2018-07-19
我跟你一樣情況,還沒有解決,就第一張圖片總是上傳不成功,我用file_exists檢測那路徑下的圖片返回的還是true,找不到什么原因。