【发布时间】:2016-08-10 03:48:31
【问题描述】:
这是我的问题。我尝试上传图像,并借助此 URL 将图像存储在数据库中的相应文件夹和图像路径中。
http://www.lionblogger.com/how-to-upload-file-to-server-using-php-save-the-path-in-mysql/。
当我尝试这种方式时,我会得到正确的答案。在我尝试使用 AJAX 的相同代码后无法正常工作。我不知道我犯了什么错误。下面是我的代码。
HTML 代码
<div class="input-group form-group">
<label> Upload Your Photo </label>
<input type="file" name="upload_photo" id="upload_photo">
</div>
<div class="">
<input type="submit" class="btn btn-success btn-lg " name="upload_files" id="upload_files" value="UPLOAD" >
</div>
AJAX 代码
$("#upload_files").click(function(event){
event.preventDefault();
var upload_photo1 = $('#upload_photo').val();
var photo= upload_photo1.split('\\').pop().split('/').pop();
var datas="photo="+photo;
alert(datas);
if(photo==''){
sweetAlert({
title: "WARNING!!!",
text: "Please Upload All Corresponding Documents And Try Again !!!!",
type: "warning"
});
} else {
$.ajax({
type: "POST",
url: 'php/upload_files.php',
data:datas
}).done(function( data ) {
alert(data);
});
}
});
还有我的 PHP 文件 上传文件.php
<?php
$fileExistsFlag = 0;
$fileName = $_POST['photo'];
var_dump($fileName);
$link = mysqli_connect("localhost","root","","spark") or die("Error ".mysqli_error($link));
$query = "SELECT filename FROM filedetails WHERE filename='$fileName'";
$result = $link->query($query) or die("Error : ".mysqli_error($link));
while($row = mysqli_fetch_array($result)) {
if($row['filename'] == $fileName) {
$fileExistsFlag = 1;
}
}
if($fileExistsFlag == 0)
{
$target = "files/";
$fileTarget = $target.$fileName;
$tempFileName = $_FILES["fileName"]["tmp_name"];
$fileDescription = $_POST['Description'];
$result = move_uploaded_file($tempFileName,$fileTarget);
$ext = end(explode('.', $fileName));
if ($_FILES["fileName"]["size"] > 2097152)
{
echo "Sorry, your file is too large.";
$uploadOk = 0;
}
else if($ext != "jpg" && $ext != "png" && $ext != "jpeg"&& $ext != "gif" )
{
echo "Sorry, only JPG, JPEG, PNG & GIF files are allowed.";
$uploadOk = 0;
}
else
{
if($result) {
echo "Your file <html><b><i>".$fileName."</i></b></html> has been successfully uploaded";
$query = "INSERT INTO filedetails(filepath,filename,description) VALUES ('$fileTarget','$fileName','$fileDescription')";
$link->query($query) or die("Error : ".mysqli_error($link));
}
else {
echo "Sorry !!! There was an error in uploading your file";
}
}
mysqli_close($link);
}
else {
echo "File <html><b><i>".$fileName."</i></b></html> already exists in your folder. Please rename the file and try again.";
mysqli_close($link);
}
?>
请承担我的疑虑.. PHP初学者。请帮助我解决这个问题。
【问题讨论】:
-
您只在 ajax 请求中发送文件名(如果有),而不是文件的内容。有关文件上传的示例代码,请参阅链接主题。