2013-10-17 69 views
-2

我有一個文件輸入的錯誤。確實,圖像被移動到服務器的文件夾 - isset($ _ FILES ['avatar']),沒問題 - 但user_avatar的字段沒有填寫你的名字。它的數據庫名稱爲「default_130x130.png」。我應該如何將「$ user_avatar」變量從upload_image.php發送到new_user.php?PHP圖像上傳並將您的路徑插入數據庫


EN /用戶/ new.html

<form id="avatar_file_upload_form" action="../../utils/upload_image.php" method="post" enctype='multipart/form-data'style="position:absolute;z-index:-10;height:1px;width:1px;overflow:hidden;visibility:hidden;"> 
     <input type="file" name="avatar" id="avatar_file_upload_field" accept="image/jpeg,image/pjpeg,image/bmp,image/gif,image/jpeg,image/png"/> 
     <input type="submit" /> 
    </form> 

utils的/ upload_image.php

<?php 
ob_start(); 
$mimeExt = array(); 
$mimeExt['image/jpeg'] ='.jpg'; 
$mimeExt['image/pjpeg'] ='.jpg'; 
$mimeExt['image/bmp'] ='.bmp'; 
$mimeExt['image/gif'] ='.gif'; 
$mimeExt['image/x-icon'] ='.ico'; 
$mimeExt['image/png'] ='.png'; 
if(isset($_FILES["avatar"])) { 
    //Begins image upload 
     $user_avatar = md5(uniqid(time())).$mimeExt[$_FILES["avatar"]["type"]]; //Get image extension 
     $user_avatar_dir = "../img/".$user_avatar; //Path file 
     move_uploaded_file($_FILES["avatar"]["tmp_name"], $user_avatar_dir); 

} else { 
    $user_avatar = "default_130x130.png"; 
} 
?> 

new_user.php

<?php 
ob_start(); 
include "config.php"; 
include "utils/upload_image.php"; 
$sql = mysql_query("insert into user(user_avatar) values('$user_avatar')", $db_connection) or die("Error: ".mysql_Error()); 
ob_end_clean(); 
mysql_close($db_connection); 
?> 

注意:「config.php」文件工作正常。

+1

請搞清楚自己的問題 – Chinmay235

回答

0

我認爲你應該將表單的動作屬性設置爲new_user.php。現在你將它路由到upload_image.php,我不知道你在那之後如何加載new_user.php。當沒有文件發送到該頁面時,實際上包含upload_image.phpnew_user.php

這應該是你的HTML:

<form id="avatar_file_upload_form" action="new_user.php" method="post" enctype='multipart/form-data'style="position:absolute;z-index:-10;height:1px;width:1px;overflow:hidden;visibility:hidden;"> 
    <input type="file" name="avatar" id="avatar_file_upload_field" accept="image/jpeg,image/pjpeg,image/bmp,image/gif,image/jpeg,image/png"/> 
    <input type="submit" /> 
</form> 

這應該是你upload_image.php

<?php 
$mimeExt = array(); 
$mimeExt['image/jpeg'] ='.jpg'; 
$mimeExt['image/pjpeg'] ='.jpg'; 
$mimeExt['image/bmp'] ='.bmp'; 
$mimeExt['image/gif'] ='.gif'; 
$mimeExt['image/x-icon'] ='.ico'; 
$mimeExt['image/png'] ='.png'; 
if(isset($_FILES["avatar"])) { 
    //Begins image upload 
     $user_avatar = md5(uniqid(time())).$mimeExt[$_FILES["avatar"]["type"]]; //Get image extension 
     $user_avatar_dir = "../img/".$user_avatar; //Path file 
     move_uploaded_file($_FILES["avatar"]["tmp_name"], $user_avatar_dir); 

} else { 
    $user_avatar = "default_130x130.png"; 
} 
?> 

,這應該是你的new_user.php

<?php 
ob_start(); 
include "config.php"; 
include "utils/upload_image.php"; 
$sql = mysql_query("insert into user(user_avatar) values('$user_avatar')", $db_connection) or die("Error: ".mysql_Error()); 
ob_end_clean(); 
mysql_close($db_connection); 
?> 
+0

我應該怎麼做派「$ user_avatar」變量,從upload_image.php,向new_user。 PHP的? – AlexDoria

+0

當您在文件中包含頁面時,它會將該頁面的確切內容複製到您的文件中,以便您可以訪問'$ user_avatar'。 – MahanGM

+0

嗯,想法解決這個問題? – AlexDoria

0

形式的行動是utils/upload_image.php的代碼和流程說你需要設置表單acti登錄到new_user.php文件。

而且我不知道爲什麼,因爲到utils/upload_image.php頁面進行提交插入查詢工作,並沒有任何關係可見之間utils/upload_image.phpnew_user.php ..你插入查詢不應該在這種情況下

更新工作:

我該如何做到真正的插入,所以?

讓你的形式去new_user.php改變action="../../new_user.php"

<form id="avatar_file_upload_form" action="../../new_user.php" method="post" enctype='multipart/form-data'style="..."> 

</form> 
+0

我如何做真正的插入,所以? – AlexDoria

+0

檢查答案中的更新.. – zzlalani

+0

當然,@zzlalani!我創建上傳image.php只發送圖像名稱,之後,任何條件進行檢查,如大小,類型,widht,高度等。無論如何,謝謝。歡迎您來到 – AlexDoria

相關問題