2013-10-17 70 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

相关问题