2011-12-27 77 views
-1

我使用此代碼替換圖像,但圖像未上載到上載文件夾中,但數據庫已更新。我需要更換圖像。如何在php中替換圖片?

<?php 
require("header.php"); 

$patientid = $_POST['patientid']; 
$pname = $_POST['pname']; 
$fname = $_POST['fname']; 
$address = $_POST['address']; 

if(!$pname || !$address) { 
    echo "<center>"; 
    echo "Fillup required fields<br><br>"; 
    echo "</center>"; 
} 
else { 
    $ran2 = $patientid; 
    $new_name2 = $ran2."b"; 
    $new_file_name2 = $new_name2."."."jpg"; 
    $path = "./members/".$new_file_name2; 

    $copied = move_uploaded_file($_FILES['img_name']['tmp_name'], $path); 

    if ($copied) { 
     $sql = mysql_query("UPDATE info_store 
     SET pname='$pname', fname='$fname', address='$address', image1='$new_file_name2' 
     WHERE patientid='$patientid'"); 
     return true; 
    } 
    else { 
     echo "<center><h3>There are An Errors In Uploading!</h3></center>"; 
     return false; 
    } 
} 
?> 

請給我一個解決方案。

+5

一些問題:無法檢查上傳是否成功。 SQL注入漏洞。假設數據庫查詢成功。無意義的字符串連接操作。可怕的表單驗證... Ouch。 – 2011-12-27 17:35:53

+0

請檢查您的上傳文件大小限制 – 2011-12-27 17:49:35

回答

2

看看這個(更換圖片):

你的PHP代碼:

<?php 
$path = '/my/folder/uploads/'; 
$row = mysql_fetch_assoc("select source from images where id = X "); 
$File_Name_Here = $path . $row['source']; 
@unlink($path. $File_Name_Here); 

$output = $path . 'md5(time()).jpg' 

copy($_FILE['image']['tmp_name'] , $output); 
?> 

請使用功能副本和閱讀本文檔:

PHP FUNCTION:COPY

PHP FUNCTION:UNLINK

您的HTML代碼:

<form action="" method="post" enctype="multipart/form-data"> 
    ...Your fields here... 
</form> 

在形式,定義爲屬性的方法 「POST」,並添加屬性 「ENCTYPE」

YOU PHP SQL代碼:

mysql_query("UPDATE images SET source ='".mysql_real_escape_string($output)."' WHERE id = X"); 

請使用MYSQL_REAL_ESCAPE_STRING

PHP FUNCTION:MYSQL_REAL_ESCAPE_STRING

YOU PHP.INI CODE

file_uploads = On 
upload_max_filesize = 20M 

如果需要,增加限制在php.ini中,只有當你是管理員。

+0

老闆在此刪除已完成但圖像未被複制。 @<?php \t // $ patientid = $ _ GET ['patientid']; $ dir =「./upload」; \t $ ran2 = $ patientid; $ new_name2 = $ ran2。「1」; $ file_name = $ new_name2。「。」。「jpg」; $ complete_path = $ dir。「/」。$ file_name; \t $ fileName = time()。「。」。「jpg」; \t $ path = $ dir。「/」。$文件名; \t 如果(的unlink($ complete_path)) \t \t { \t \t回聲 「成功刪除文件」; \t \t} \t其他 \t \t { \t \t回聲 「不刪除文件」; \t \t \t} \t如果(複製($ _ FILE [ 'image1的'] [ 'tmp_name的值'],$路徑)) \t \t { \t \t回聲 「」; \t \t} \t其他 \t \t { \t \t回聲 「不替換」; \t \t} ?> – user1117964 2011-12-27 20:34:11