Как загрузить файл с помощью AJAX вызова в Framework7? - PullRequest
0 голосов
/ 06 декабря 2018

Я использую Ajax для загрузки файла изображения на сервер.Но если я использовал form method = "POST", он работает нормально, но как я хочу использовать ajax, то как это сделать?

AJAX CODE

function addcategory(){


      var cname = $("#categoryname").val();
      var desc =  $("#description").val();
      var img = $("#file1").val();
      var filename = $('input[type=file]').val().replace(/C:\\fakepath\\/i, '')
      console.log(cname,desc);
    app.request({
        crossOrigin: true,
        type: "GET",
        url: "http://www.myreminde.com/addcategory.php",
        data:{category_name:cname,descri:desc},
        async:true,
        crossDomain:true,
        dataType: 'json',
        cache: true,     
        processData: false,
        success:function( response ) {
        if(response != 0){
                $("#img").attr("src",response); 
                $(".preview img").show(); // Display image element
            } else{
                alert('file not uploaded');
            }
        },


          }
      );

PHP CODE

<?php header('Access-Control-Allow-Origin: *');
  header('Access-Control-Allow-Credentials: true');
  header('Access-Control-Allow-Methods: GET, POST, PUT');       
  $catname = $_GET['categoryname'];
  $description = $_GET['description'];
  $upload_image=$_FILES["myimage"]["name"];
  if (!empty($catname) || !empty($description)) {
$host = 'localhost';
$dbUsername = '';
$dbPassword = '';
$dbname = '';
//create connection
$conn = new mysqli($host, $dbUsername, $dbPassword, $dbname);
if (mysqli_connect_error()) {
 die('Connect Error('. mysqli_connect_errno().')'. mysqli_connect_error());
} else {
 $dir="category/$catname";
mkdir($dir);
move_uploaded_file($_FILES["myimage"]["tmp_name"],"category/$catname/".$_FILES["myimage"]["name"]);
 $SELECT = "SELECT categoryName From category Where categoryName = ? Limit 1";
 $INSERT = "INSERT Into category (categoryName, categoryDescription, categoryImage) values('$catname','$description','$upload_image')";
 //Prepare statement
 $stmt = $conn->prepare($SELECT);
 $stmt->bind_param("s", $catname);
 $stmt->execute();
 $stmt->bind_result($categoryName);
 $stmt->store_result();
 $rnum = $stmt->num_rows;
 if ($rnum==0) {
  $stmt->close();
  $stmt = $conn->prepare($INSERT);
  $stmt->bind_param("sss", $catname, $description,$upload_image);
  $stmt->execute();

 } else {
  echo "Category already Present";
 }
 $stmt->close();
 $conn->close();
}}else{echo "All field are required";die();}?>

HTML-код Если я использовал метод формы post и отправил значение в URL-адрес, он отлично работает, но влияет на оставшиеся

`<form method="GET" action="http://www.myreminde.com/addcategory.php" 
 enctype="multipart/form-data" id="myform"><b>Category name:-</b>
<div class="item-input-wrap">
<input type="text" placeholder="category Name" name="categoryname" 
id="categoryname" required > </div> <b>Description:-</b>
<div class="item-input-wrap">
<input type="text" placeholder="description" name="description" 
id="description" required >
</div> <b>Category Image:-</b>
<input class="button button-small" type='file' id='file' name="myimage" 
accept="imags/*;capture=camera">
<button class="button" onclick="addcategory()">Create</button> 
</form>
</div>    
</div></div>`

Это мой HTML-файл.

...