[請益] 更新圖片 (已解決>"<)
不好意思,我是個PHP新手
遇到一個問題卡很久
一開始從網頁上自行上傳圖片顯示在網頁上沒問題
但是想從網頁上更換掉圖片就會變成叉燒包
<input name="Pro_picture" type="file" class="InputText" id="Pro_picture" />
上面這是前頁上傳的圖片CODE
下面是更新圖片的CODE
$getBimgfilename=$_FILES['Pro_picture']['name'];
$getBimgfiletmp=$_FILES['Pro_picture']['tmp_name'];
$saveBimgname="PHOTO/".$getBimgfilename;
$filein = "C:/AppServ/www/$saveBimgname" ;
move_uploaded_file($getBimgfiletmp , $filein) ;
if ($saveBimgname == "PHOTO/"){
$savefolder="../pdimage/";
if(!file_exists($savefolder)) {
mkdir($savefolder); }
mysql_query("SET NAMES 'big5'");
$sql = "UPDATE product SET Pro_name = '$Pro_name',
Pro_class = '$Pro_class' , Pro_cost = '$Pro_cost',
Pro_amount = '$Pro_amount',
Pro_picture = '$saveBimgname', Pro_info = '$Pro_info'
WHERE Pro_id = '$Pro_id'";
$result = mysql_query($sql, $link);
if (!$result) die("執行 SQL 命令失敗");
$savefolder="../pdimage/";
if(!file_exists($savefolder)) {
mkdir($savefolder); }
}
else{
$savefolder="../pdimage/";
if(!file_exists($savefolder)) {
mkdir($savefolder);
mysql_query("SET NAMES 'big5'");
$sql = "UPDATE product SET Pro_name = '$Pro_name',
Pro_class = '$Pro_class' , Pro_cost = '$Pro_cost',
Pro_amount = '$Pro_amount',
Pro_picture = '$saveBimgname', Pro_info = '$Pro_info',
WHERE Pro_id = '$Pro_id'";
$result = mysql_query($sql, $link);
if (!$result) die("執行 SQL 命令失敗");
}
小弟在更新圖片時也有同時更新其他資訊
其他方面沒問題,就是只有圖片不行
有試過其他方法(例如先刪除再新增),但也是判定不行
苦了快一個月,因此只好請各位大大幫忙看看是否哪裡錯誤
指導一下小弟我>"<
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.170.63.90
推
12/28 10:18, , 1F
12/28 10:18, 1F
→
12/28 10:18, , 2F
12/28 10:18, 2F
→
12/28 10:22, , 3F
12/28 10:22, 3F
時間參數?? 囧>? 不是很懂QQ
其他的都只是一些可以更改的資訊,名稱編號等等之類的..
→
12/28 12:04, , 4F
12/28 12:04, 4F
是喔QQ 感謝
→
12/28 14:37, , 5F
12/28 14:37, 5F
就從電腦資料夾直接抓他的檔名,沒改過
也都有在photo的資料夾中,但就是沒辦法更新圖片
→
12/28 15:20, , 6F
12/28 15:20, 6F
剛剛試了一下,我資料庫是看不到檔名有沒有更改
但是檔案大小是有變動的,但是都會變成只有6Bytes,也跟圖片大小不符
→
12/29 10:24, , 7F
12/29 10:24, 7F
嗯嗯 是的
→
12/30 15:30, , 8F
12/30 15:30, 8F
→
12/30 15:31, , 9F
12/30 15:31, 9F
剛剛測試了一下
問題似乎是出在於getBimgfilename以及getBimgfiletmp這兩個變數上
我將變數用echo呼叫路徑出來查看,只有這兩個是空的。
導致saveBimgname也只有"photo/"這個路徑,因此他就跳到if中
讓photo這個路徑蓋過原本圖片路徑,判定我沒上傳圖。
(那個IF我有故意加上Pro_picture = '$saveBimgname',所以他強制變成沒圖 叉燒包)
於是我又跑回去測試新增
結果同樣的getBimgfilename跟getBimgfiletmp都是正常的顯示出檔名
導致我現在很納悶,囧a
→
12/31 01:55, , 10F
12/31 01:55, 10F
我覺得應該是出在前一頁上傳路徑的問題,我兩個都有echo過Pro_picture的路徑
新增的echo出來是無法顯示的,更新那個則是會顯示出路徑
上面提到的getBimg那兩個則是相反,新增echo的到,更新則不行
但是我兩個都是一樣的方式上傳的,所以目前無法理解為什麼會這樣..
那個是名稱。
→
12/31 10:03, , 11F
12/31 10:03, 11F
→
12/31 10:04, , 12F
12/31 10:04, 12F
謝謝,試過不行 囧
我弄出來了 囧
更新圖片的
$savefolder="../pdimage/";
if(!file_exists($savefolder)) {
mkdir($savefolder);}
那個}我在修改時拿到最下面去了
他是在判斷我有沒有那個目錄,因為新增就會有目錄了,所以他跳出這個IF
連我更新的部份也一起跳出了..
然後我又不小心在 WHERE Pro_id = '$Pro_id'"; 這之前多加個 ,
語法出錯Orz
之前那個echo的差別我也找出來了
我有一個在送表單有加上 enctype="multipart/form-data"
另一個沒有,我都加上之後echo都變的一樣了..
感謝rex921大大這幾天的幫忙Orz
我真是蠢蛋ㄒ口ㄒ
※ 編輯: everymoon 來自: 218.170.52.106 (12/31 11:24)
→
12/31 13:09, , 13F
12/31 13:09, 13F