Hier ist mein Problem. Ich habe versucht, ein Bild hochzuladen, und ich speichere Bilder in einem entsprechenden Ordner und Bildpfad in der Datenbank mit Hilfe dieser URL.Bild mit Ajax und PHP hochladen
http://www.lionblogger.com/how-to-upload-file-to-server-using-php-save-the-path-in-mysql/.
Wenn ich auf diese Weise versucht habe, bekomme ich die richtige Antwort. Nachdem ich den gleichen Code mit AJAX versucht habe funktioniert nicht richtig. Ich weiß nicht, was ich falsch gemacht habe. Unten ist mein Code.
HTML-Code
<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 Code
$("#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);
});
}
});
Und meine PHP-Datei Upload_files.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);
}
?>
Bitte bear meine Zweifel .. Anfänger von PHP.Kindly Helfen Sie mir aus diesem Problem heraus.
Mögliche Duplikat von [ jquery ajax Dateiupload php] (http://stackoverflow.com/questions/23980733/jquery-ajax-file-upload-php) – Shadow
Sie senden nur den Namen der Datei (falls vorhanden) in Ihrer Ajax-Anfrage, nicht den Inhalt der Datei. Im verknüpften Thema finden Sie einen Beispielcode zum Hochladen von Dateien. – Shadow