Проблема с функцией щелчка Jquery и кодом ajax для вызова php-файла для загрузки изображений - PullRequest
0 голосов
/ 02 октября 2019

Я успешно загрузил изображения на свой сервер, используя следующий код, адаптированный из https://www.tutorialrepublic.com/php-tutorial/php-file-upload.php:

<html>
<head>
    <meta charset="UTF-8">
    <title>File Upload Form</title>
</head>
<body>
    <form action="formtest1.php" method="post" enctype="multipart/form-data">
        <h2>Upload File</h2>
        <label for="fileSelect">Filename:</label>
        <input type="file" name="photo" id="fileSelect">
        <input type="submit" name="submit" id="submit" value="Upload">
        <p><strong>Note:</strong> Only .jpg, .jpeg, .gif, .png formats allowed to a max size of 5 MB.</p>
    </form>
</body>
</html>
<?php
if($_SERVER["REQUEST_METHOD"] == "POST"){
    if(isset($_FILES["photo"]) && $_FILES["photo"]["error"] == 0){
        $allowed = array("jpg" => "image/jpg", "jpeg" => "image/jpeg", "gif" => "image/gif", "png" => "image/png");
        $filename = $_FILES["photo"]["name"];
        $filetype = $_FILES["photo"]["type"];
        $filesize = $_FILES["photo"]["size"];
        $filepath = "/Users/this/Desktop/Web/" . $_FILES["photo"]["name"];   
        $ext = pathinfo($filename, PATHINFO_EXTENSION);
        if(!array_key_exists($ext, $allowed)) die("Error: Please select a valid file format.");   
        $maxsize = 5 * 1024 * 1024;
        if($filesize > $maxsize) die("Error: File size is larger than the allowed limit.");
        if(in_array($filetype, $allowed)){
            if(file_exists("/Users/this/Desktop/Web/" . $filename)){
                echo $filename . " is already exists.";
            } else{
                move_uploaded_file($_FILES["photo"]["tmp_name"], "/Users/this/Desktop/Web/" . $filename);
                echo "Your file was uploaded successfully.";
            } 
        } else{
            echo "Error: There was a problem uploading your file. Please try again."; 
        }
    } else{
        echo "Error: " . $_FILES["photo"]["error"];
    }
}
?>

, но хотел бы иметь php-код в отдельном файле с именем imagetest.php, который будетвызывается, когда пользователь нажимает кнопку «выбрать файл». imagetest.php находится в той же папке, что и файл выше. Я пробовал много разных итераций следующей функции jquery / ajax, но безрезультатно, кто-то может мне помочь?

$(document).ready(function(){
  $("submit").click(function(){
$.ajax({
        type: "POST",
        url: "testing/imagetest.php",
        dataType: 'json',
        success: function(response){
            console.log('Your photo was uploaded successfully.');
        }
    });
});
}
  </script>

Большое спасибо.

1 Ответ

0 голосов
/ 03 октября 2019

вам нужно вводить вызов по идентификатору, используя '#'

$(document).ready(function(){
        console.log('ready');
        $("submit").click(function(){
            console.log('send');
        $.ajax({
                type: "POST",
                url: "testing/imagetest.php",
                dataType: 'json',
                success: function(response){
                    console.log('Your photo was uploaded successfully.');
                }
            });
        });
        $("#fileSelect").click(function(){
            console.log('opened'); //or what you want, i don't know what should do your php file)

            });
});

или если вам нужно что-то сделать с изображением после выбора - используйте "изменить" вместо "нажмите"

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