使用PHP上载文件时出错
我得到了以下PHP代码:使用PHP上载文件时出错,php,html,Php,Html,我得到了以下PHP代码: SESSION_start(); $conn = mysql_connect("localhost", "root", ""); if(!$conn) die("Cannot connect to the database server: <br /> ".mysql_error()); $db = mysql_select_db("tsismics", $conn); if(!$db) die("Cannot connect to the da
SESSION_start();
$conn = mysql_connect("localhost", "root", "");
if(!$conn) die("Cannot connect to the database server: <br />
".mysql_error());
$db = mysql_select_db("tsismics", $conn);
if(!$db) die("Cannot connect to the database: <br />
".mysql_error());
$userId = $_SESSION['userId'];
$dir = $userId."/".$_FILES['profpic']['name'];
$filename = $_FILES['profpic']['name'];
$target = "profile_pictures/".$userId."/";
echo $target;
mysql_query("UPDATE users SET photo=\"$dir\" WHERE userId=$userId", $conn);
if(move_uploaded_file($_FILES['profpic']['tmp_name'], $target)) {
echo "The file ". basename( $_FILES['profpic']['name']). " has been uploaded, and your information has been added to the directory";
}
else {
echo "Sorry, there was a problem uploading your file.";
}
SESSION_start();
$conn=mysql_connect(“本地主机”、“根目录”、“根目录”);
如果(!$conn)死亡(“无法连接到数据库服务器:
“.mysql_error());
$db=mysql\u select\u db(“tsismics”,$conn);
如果(!$db)死亡(“无法连接到数据库:
“.mysql_error());
$userId=$\会话['userId'];
$dir=$userId.“/”$_文件['profpic']['name'];
$filename=$_文件['profpic']['name'];
$target=“profile_pictures/”$userId./”;
echo$target;
mysql_查询(“更新用户集照片=\”$dir\“其中userId=$userId”,$conn);
如果(移动上传的文件($文件['profpic']['tmp\u名称]],$target)){
echo“The file”.basename($_FILES['profpic']['name'])”已上载,并且您的信息已添加到目录中;
}
否则{
echo“抱歉,上载文件时出现问题。”;
}
这是我的HTML块:
<form method="POST" action="upload-prof-pic.php" enctype="multipart/form-data">
<input type="file" value="upload profile pic" name="profpic"/>
<input type="submit" value="Upload" id="prof-pic-submit">
</form>
上载时,它会在文件夹:profile\u pictures中创建一个以userId作为文件名且不带任何扩展名的文件
我忘了发这个。。它有两个错误: 警告:移动上传的文件(profile\u pictures/1/3.png):无法打开流:第22行的C:\wamp\www\project\upload-prof-pic.php中没有此类文件或目录 警告:move_upload_file():无法将“C:\wamp\tmp\php2070.tmp”移动到C:\wamp\www\project\upload-prof-pic.php第22行的“profile_pictures/1/3.png”中的“profile_pictures/1/3.png”。另外,请注意一件事(基于您更新的问题),因为您正试图将每个pic存储在一个以用户id命名的新目录中,您还需要创建该目录,并且显然具有写入权限 应该是
$target = "profile_pictures/".$userId."/".$filename;
哦,仍然在使用著名的mysql.*
api?哦,还有一件事需要注意(根据您更新的问题),因为您试图将每个pic存储在一个以用户id命名的新目录中,所以您还需要创建该目录,并且显然具有写入权限
应该是
$target = "profile_pictures/".$userId."/".$filename;
哦,仍然在使用著名的
mysql.*
api?我不确定这是不是它或者它是否有效,但请尝试更改SESSION\u start()代码>到会话_start()代码>
看起来您可能想要删除/,或者更好地创建时间/文件名的md5,因此profile_pictures/1/3.png正在寻找profile_pictures/1作为目录
使用这样的东西可能会有用
$file = md5($_FILES['profpic']['name'] . microtime(true)) . "." . pathinfo($_FILES['profpic']['name'], PATHINFO_EXTENSION);
应该为您提供类似于790540225255fb1a26e4bc422aef54eb4.png的内容
使用pathinfo()保留扩展名
编辑:
再次查看您的问题,该文件不是作为文件夹提供给您的/1
。我建议将所有个人资料头像放在一个文件夹中,而不是每个用户都有一个包含一个文件的文件夹。更改以下行
$target = "profile_pictures/".$userId."/";
到
我仍然建议使用如上所述的md5来克服相同的文件名上载问题我不确定这是不是它或者它是否有效,但请尝试更改会话_start()代码>到会话_start()代码>
看起来您可能想要删除/,或者更好地创建时间/文件名的md5,因此profile_pictures/1/3.png正在寻找profile_pictures/1作为目录
使用这样的东西可能会有用
$file = md5($_FILES['profpic']['name'] . microtime(true)) . "." . pathinfo($_FILES['profpic']['name'], PATHINFO_EXTENSION);
应该为您提供类似于790540225255fb1a26e4bc422aef54eb4.png的内容
使用pathinfo()保留扩展名
编辑:
再次查看您的问题,该文件不是作为文件夹提供给您的/1
。我建议将所有个人资料头像放在一个文件夹中,而不是每个用户都有一个包含一个文件的文件夹。更改以下行
$target = "profile_pictures/".$userId."/";
到
我仍然建议使用如上所述的md5来克服相同的文件名上载问题我认为您正在尝试创建文件夹或目录并一起上载文件。
在这种情况下,我建议您首先执行此命令:
mkdir("profile_pictures/".$userId , 700);
在上载文件之前创建目录
希望不会有问题…我认为您正在尝试创建文件夹或目录,并一起上载文件。
在这种情况下,我建议您首先执行此命令:
mkdir("profile_pictures/".$userId , 700);
在上载文件之前创建目录
希望不会有问题…正如我告诉您的,您早期发布的错误显示文件夹“1”不存在或至少没有上传到的权限,因此我认为您必须检查它是否不存在,然后如果是,创建它,然后使用chmod
将其权限更改为合适的权限,然后继续上传过程。希望这能解决您的问题:)正如我告诉您的,您早期发布的错误显示文件夹“1”不存在或至少没有上传到的权限,因此我认为您必须检查它是否不存在,然后如果是,创建它,然后使用chmod
将其权限更改为合适的权限,然后继续上传过程。希望这能解决您的问题:)您需要:
。(文件参数的路径,而不是文件夹)
(见红色矩形?)
例如:
session_start();
if(!empty($_FILES['profpic'])){
$conn = mysql_connect("localhost", "root", "");
if(!$conn) die("Cannot connect to the database server: <br />
".mysql_error());
$db = mysql_select_db("tsismics", $conn);
if(!$db) die("Cannot connect to the database: <br />".mysql_error());
$userId = $_SESSION['userId'];
$filename = $_FILES['profpic']['name'];
$target = "profile_pictures/".$userId.'/'.$filename;
echo $target;
mysql_query("UPDATE users SET photo=\"$dir\" WHERE userId=$userId", $conn);
if(!file_exists("profile_pictures/".$userId)){
mkdir("profile_pictures/".$userId, 700);
}
if(move_uploaded_file($_FILES['profpic']['tmp_name'], $target)) {
echo "The file ". basename( $_FILES['profpic']['name']). " has been uploaded, and your information has been added to the directory";
}
else {
echo "Sorry, there was a problem uploading your file.";
}
}
session_start();
如果(!空($_文件['profpic'])){
$conn=mysql_connect(“本地主机”、“根目录”、“根目录”);
如果(!$conn)死亡(“无法连接到数据库服务器:
“.mysql_error());
$db=mysql\u select\u db(“tsismics”,$conn);
如果(!$db)死亡(“无法连接到数据库:
”。mysql_error());
$userId=$\会话['userId'];
$filename=$_文件['profpic']['name'];
$target=“profile_pictures/”$userId./'.$filename;
echo$target;
mysql_查询(“更新用户集照片=\”$dir\“其中userId=$userId”,$conn);
如果(!file_存在(“profile_pictures/”$userId)){
mkdir(“profile_pictures/”$userId,700);
}
如果(移动上传的文件($文件['profpic']['tmp\u名称]],$target)){
echo“The file”.basename($_FILES['profpic']['name'])”已上载,您的信息已被删除