【发布时间】:2018-03-19 14:25:48
【问题描述】:
老实说,我不是很擅长 php,所以我正在寻求帮助。
这是图片上传的代码
PHP
session_start();
require_once('../odliczanie/connect.php');
$prof = basename($_FILES["file"]["name"]);
$uploadOk = 1;
if($prof != ""){
$target_dir = "../odliczanie/images/prof/";
$target_file = $target_dir . basename($_FILES["file"]["name"]);
$imageFileType = pathinfo($target_file,PATHINFO_EXTENSION);
// Check if image file is a actual image or fake image
if(isset($_POST["submit"])) {
$check = getimagesize($_FILES["file"]["tmp_name"]);
if($check !== false) {
//echo "Plik jest zdjęciem - " . $check["mime"] . ".";
$uploadOk = 1;
} else {
$_SESSION['how'] = false;
$_SESSION['msg'] = "Plik nie jest zdjęciem";
mysqli_close($connection);
//header("Location: ". $_SESSION['current_page']);
}
}
// Check if file already exists
if (file_exists($target_file)) {
$_SESSION['how'] = false;
$_SESSION['msg'] = "Nazwa pliku jest już zajęta";
mysqli_close($connection);
//header("Location: ". $_SESSION['current_page']);
}
// Check file size
if ($_FILES["file"]["size"] > 104858) {
$_SESSION['how'] = false;
$_SESSION['msg'] = "Za duży rozmiar pliku, max 1MB";
mysqli_close($connection);
//header("Location: ". $_SESSION['current_page']);
}
// Allow certain file formats
if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg" ) {
$_SESSION['how'] = false;
$_SESSION['msg'] = "Tylko pliki JPG, JPEG i PNG są obsługiwane";
mysqli_close($connection);
//header("Location: ". $_SESSION['current_page']);
}
// Check if $uploadOk is set to 0 by an error
if ($uploadOk == 0) {
//$_SESSION['e_prof']="Coś było nie tak z tym zdjęciem";
// if everything is ok, try to upload file
} else {
if (move_uploaded_file($_FILES["file"]["tmp_name"], $target_file)) {
}
}
} else {
$_SESSION['how'] = false;
$_SESSION['msg'] = "error1";
mysqli_close($connection);
//header("Location: ". $_SESSION['current_page']);
}
if ($uploadOk==1){
//Dodajemy boba do bazy
$email = $_SESSION['email'];
//here is error
if($connection->query("UPDATE `prof` SET `prof` = '".$prof."' WHERE `prof`.`osoba` = '".$email."'")){
$zapytanie = "select * FROM prof WHERE id = '".$email."'";
$wynik = mysqli_query($connection,$zapytanie);
$row = mysqli_fetch_assoc($wynik);
$profdel = $row['prof2'];
unlink("/odliczanie/prof/images/$profdel");
if($connection->query("UPDATE `prof` SET `prof2` = '".$prof."' WHERE `prof`.`osoba` = '".$email."'")){
$_SESSION['how'] = true;
$_SESSION['msg'] = "Zdjęcie profilowe zapisane pomyślnie";
mysqli_close($connectionion);
//header("Location: ". $_SESSION['current_page']);
}
}else{
$_SESSION['how'] = false;
$_SESSION['msg'] = "Błąd podczas zapisywania zdjęcia profilowego";
mysqli_close($connection);
//header("Location: ". $_SESSION['current_page']);
}
} else {
$_SESSION['how'] = false;
$_SESSION['msg'] = "error2";
mysqli_close($connection);
//header("Location: ". $_SESSION['current_page']);
}
这里是html表单
HTML
<form method="POST" action="/odliczanie/upload" enctype="multipart/form-data" id="upload" style="padding:16px;">
<div style="width:300px;height:400px;margin:auto;">
<? echo "<img id='img' src='/odliczanie/images/prof/$prof' height='300px' width='300px' alt='image preview...'>"; ?><br>
<input type="file" name="file" id="file" class="inputfile" onchange="previewFile()" />
<label for="file"><span>Wybierz zdjęcie</span></label><br>
</div>
<div class="clearfix">
<button type="button" class="cancelbtn" onclick="document.getElementById('id02').style.display='none'">Anuluj</button>
<div style="float:right;">
<button type="submit" form="form1" value="Submit">Zapisz</button>
</div>
</div>
</form>
有警告信息,我不知道出了什么问题。
警告:mysqli::query():无法在第 61 行的 /home/kivvi/domains/redrose.pulawy.pl/public_html/odliczanie/upload.php 中获取 mysqli
我在 php.ini 文件中设置了file_uploads = On。
我尝试使用mysqli_query ($ connection, $ sql) 而不是$ connection-> query ($sql),但它也不起作用。
图像被发送到服务器,但数据库中的记录没有改变。有什么建议吗?
编辑:
connect.php 内容
$connection = mysqli_connect('localhost', 'kivvi_redrose', '**********');
if(!$connection){
die("Database Connection Failed" . mysqli_error($connection));
}
$select_db = mysqli_select_db($connection, 'kivvi_redrose');
if(!$select_db){
die("Database Selection Failed" . mysqli_error($connection));
}
【问题讨论】:
-
请把connection.php的内容贴出来好吗?
-
恐怕您必须先提取 MCVE。还要注意浏览器端代码、接收请求的PHP和SQL都可以分开,这样你的问题描述也可以更准确。
-
将
ini_set('display_errors', 1); ini_set('log_errors',1); error_reporting(E_ALL); mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);添加到脚本的顶部。这将强制任何mysqli_错误生成一个您可以在浏览器上看到的异常,并且其他错误也将在您的浏览器上可见。 -
onchange="previewFile()"javascript 是做什么的? -
你真的有一个名为
prof的列在一个名为prof的表中,像这样UPDATEprof` SETprof=` 或者是一个woopsee
标签: php mysql image-uploading