我遇到了问题。我有一个表单来更改用户个人资料图片。如果用户没有以前的图像,php工作正常,图像上传,如果文件存在,move_uploaded_file不替换图像,它可以在我的localhost上工作,但不能在我的在线服务器上工作。这是我的代码
if ($_POST['parse_var'] == "pic"){
// If a file is posted with the form
if ($_FILES['fileField']['tmp_name'] != "") {
$maxfilesize = 4109212;
if($_FILES['fileField']['size'] > $maxfilesize ) {
$error_msg = '<font color="#FF0000">ERROR: Your image was too large, please try again.</font>';
unlink($_FILES['fileField']['tmp_name']);
} else if (!preg_match("/\.(gif|jpg|png|jpeg)$/i", $_FILES['fileField']['name'] ) ) {
$error_msg = '<font color="#FF0000">ERROR: Your image was not one of the accepted formats, please try again.</font>';
unlink($_FILES['fileField']['tmp_name']);
} else {
$newname = "profile.jpg";
$place_file = move_uploaded_file( $_FILES['fileField']['tmp_name'], "users/$id/".$newname);
}
}
}
任何想法为什么?它是第一次用户更改它时工作,它可能是一个PHP .ini问题? 第一次正确上传文件,一旦你上传了一张图片就不再有用了,就像你不能替换文件夹里面的图像一样
答案 0 :(得分:0)
你可以从这里开始:
error_reporting(E_ALL);
下面添加$maxfilesize = 4109212;
users/$id/filename
表示您将此图像发送到名为 users 的文件夹,该文件夹位于运行脚本文件的位置。也许你可以使用绝对路径。另外,$ id变量是否已设置?