Php 警告:文件\获取\内容():文件名不能为空(由if条件覆盖)
我试图为我的评估做一个要求,即“在某种形式上,如果用户上传1个或多个图像,这些图像和其他输入信息需要存储在数据库中。如果用户选择不上传任何图像,其他输入信息需要存储在数据库中。” 这是我按自己的方式做时得到的结果,但并不完美 警告:文件\u get\u contents():第178行C:\xampp\htdocs\WEB Assignment\phpserver.php中的文件名不能为空 这是我从var_dump得到的Php 警告:文件\获取\内容():文件名不能为空(由if条件覆盖),php,Php,我试图为我的评估做一个要求,即“在某种形式上,如果用户上传1个或多个图像,这些图像和其他输入信息需要存储在数据库中。如果用户选择不上传任何图像,其他输入信息需要存储在数据库中。” 这是我按自己的方式做时得到的结果,但并不完美 警告:文件\u get\u contents():第178行C:\xampp\htdocs\WEB Assignment\phpserver.php中的文件名不能为空 这是我从var_dump得到的 array(5) { ["ServiceSelected"]=&
array(5) {
["ServiceSelected"]=> string(8) "Teaching"
["SkillsRequirement"]=> array(1) {
[0]=> string(4) "None"
}
["serviceLocation"]=> string(8) "Test NM4"
["CreditAward"]=> string(2) "99"
["CreateTaskSubmit"]=> string(0) ""
}
array(1) {
["Image"]=> array(5) {
["name"]=> array(1) {
[0]=> string(0) ""
}
["type"]=> array(1) {
[0]=> string(0) ""
}
["tmp_name"]=> array(1) {
[0]=> string(0) ""
}
["error"]=> array(1) {
[0]=> int(4)
}
["size"]=> array(1) {
[0]=> int(0)
}
}
}
array(1) {
["Image"]=> array(5) {
["name"]=> array(1) {
[0]=> string(0) ""
}
["type"]=> array(1) {
[0]=> string(0) ""
}
["tmp_name"]=> array(1) {
[0]=> string(0) ""
}
["error"]=> array(1) {
[0]=> int(4)
}
["size"]=> array(1) {
[0]=> int(0)
}
}
}
我的第一次尝试是使用多个图像上传
foreach ($_FILES['Image']['tmp_name'] as $ui) {
$imagesUploaded = base64_encode(file_get_contents($ui));
mysqli_query($db, "INSERT INTO imagedb
(UploadedImage,Task_ID)
VALUES ('$imagesUploaded','$lastTaskId')");
}
第二次尝试,当我尝试在我的评估需要的条件下进行时
if ($_FILES['Image']['size'] == 0) {
$NoImage = "C:/xampp/htdocs/WEB Assignment/image/NoImage.jpg";
$imagesUploaded = base64_encode(file_get_contents($NoImage));
mysqli_query($db, "INSERT INTO imagedb
(UploadedImage,Task_ID)
VALUES ('$imagesUploaded','$lastTaskId')");
} else {
foreach ($_FILES['Image']['tmp_name'] as $ui) {
$imagesUploaded = base64_encode(file_get_contents($ui)); // Line 178
mysqli_query($db, "INSERT INTO imagedb
(UploadedImage,Task_ID)
VALUES ('$imagesUploaded','$lastTaskId')");
}
}
第三,尝试不同的方法
if (count($_FILES['Image']) > 0) {
foreach ($_FILES['Image']['tmp_name'] as $ui) {
$imagesUploaded = base64_encode(file_get_contents($ui)); // Line 178
mysqli_query($db, "INSERT INTO imagedb (UploadedImage,Task_ID) VALUES ('$imagesUploaded','$lastTaskId')");
}
}else{
echo "no image uploaded";
}
^的问题是,每当我没有上传任何图像时,我都希望存储在数据库中的$NoImage显示用户没有上传图像,但$NoImage没有存储在数据库中,并生成“警告”内容。已解决 将第一个方法修改为此
foreach ($_FILES['Image']['name'] as $ui => $value){
if(is_uploaded_file($_FILES['Image']['tmp_name'][$ui])){
$imagesUploaded = base64_encode(file_get_contents($_FILES['Image']['tmp_name'][$ui]));
mysqli_query($db, "INSERT INTO imagedb (UploadedImage,Task_ID) VALUES ('$imagesUploaded','$lastTaskId')");
}
}
评论不用于扩展讨论;这段对话已经结束。