JQuery проблема загрузки файла ajax - PullRequest
0 голосов
/ 30 сентября 2018

Я только начинаю изучать программирование через несколько месяцев.я пытаюсь сделать загрузку файла без обновления страницы.но файл не вставлен в базу данных.но когда я отключаю ajax, файл и другая информация вставляются в базу данных.вот мой HTML.

<form action="" method="post" id="addTitle" enctype="multipart/form-data">

    <select class="form-control" name="albums" id="albums">
        <option value="select album">Select Album</option>
        <?php while ($album = mysqli_fetch_assoc($albums)) : ?> 
        <option value="<?= $album['album_id']; ?>"><?= $album['album_name']; ?></option>
        <?php endwhile; ?>
    </select><br>
    <select class="form-control" name="artist" id="artist">
        <option value="select artist">Select Artist</option>
        <?php foreach ($artists as $artist) :?>

        <option value="<?= $artist['artist_id']; ?>"><?= $artist['artist_name']; ?></option>
        <?php endforeach; ?>
    </select><br>
    <label for="addTitle">Add Title</label><br>
    <input class="form-control" type="text" name="addTitle" id="addTitleName" placeholder="Title"><br>

    <label for="audioFile">Audio File</label><br>
    <input class="form-control" type="file" name="audioFile"><br>

    <label for="addSrc">Download Link</label><br>
    <input class="form-control" type="text" name="addSrc" placeholder="Download Link"><br>

    <label for="audioDuration">Duration</label><br>
    <input class="form-control" type="text" placeholder="Audio Duration" name="audioDuration">

    <button class="btn btn-outline-secondary" name="inputFile">Add Title</button><span id="titleSuccess"></span>
</form><br><br>  

вот мой php.

function addTitle(){
global $conn;

$audioName = $_FILES["audioFile"]['name'];
$error = $_FILES["audioFile"]['error'];
$tmpName = $_FILES["audioFile"]['tmp_name'];
$ext = 'mp3';
$audioExt = explode('.', $audioName);
$audioExt = strtolower(end($audioExt));
$albumName = $_POST["albums"];
$titleName = $_POST["addTitle"];
$download = $_POST["addSrc"];
$duration = $_POST["audioDuration"];
$artist = $_POST["artist"];

if ($error === 4) {
    echo "Please Choose file";
    return false;
}

if (!$audioExt) {
    echo "Please Pick audio file";
    return false;
}

$checkTitle = mysqli_query($conn, "SELECT * FROM title WHERE title_name = '$titleName'");

$newAudioname = "MU_Seek-".uniqid();

move_uploaded_file($tmpName, 'audio/'.$newAudioname.".".$audioExt);

$audioFIleSize = $_FILES["audioFile"]["size"];
// $checkFile = mysqli_query($conn, "SELECT * FROM title WHERE audio_source = '$newAudioname'");
$checkDownload = mysqli_query($conn, "SELECT * FROM title WHERE download_link = '$download'");

if (mysqli_fetch_assoc($checkTitle)) {
    echo "Title already Exist";
    return false;
} 
// else if(mysqli_fetch_assoc($checkFile)){
//      echo "File already exsist";
//      return false;
// } 
else if(mysqli_fetch_assoc($checkDownload)){
    echo "Download link already exsist";
    return false;
}else{
    $insert = "INSERT INTO title (title_name, artist_id, album_id, audio_source, download_link, file_size,duration) VALUES ('$titleName', '$artist', '$albumName','$newAudioname', '$download', '$audioFIleSize','$duration')";
}
$query = mysqli_query($conn, $insert);
if (!$query) {
    echo "Failed to Add title";
    return false;
} else{
    header("Location: upload.php");
}

}

и вот мой jquery.

$('#addTitle').on('submit', function(e) {
    e.preventDefault();
    $.ajax({
        type: 'POST',
        url: 'upload.php',
        enctype: 'multipart/form-data',
        contentType: false,
        processData: false,
        cache: false,
        data: new FormData(this),
        success: function(data) {
            if ($.trim($('#addTitleName').val()) == "") {
                $('#titleSuccess').fadeIn(1000);
                $('#titleSuccess').html('Please input title name');
                $('#titleSuccess').css({
                    'color': 'red',
                    'font-style': 'italic'
                });
                $('#titleSuccess').fadeOut(3000);
                return false;
            } else {
                $('input').val('');
                $('#titleSuccess').fadeIn(1000);
                $('#titleSuccess').html('Title added successfully');
                $('#titleSuccess').css({
                    'color': 'lime',
                    'font-style': 'italic'
                });
                $('#titleSuccess').fadeOut(3000);

            }

        }
    })
})  

Прошу прощения за мой плохой английский, потому что английский не мой основной язык.Я надеюсь, что вы можете понять мою проблему.
мир.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...