【问题标题】:image upload in server using ajax call and php file使用ajax调用和php文件在服务器中上传图像
【发布时间】:2015-09-10 12:01:59
【问题描述】:

我有一个输入文件...我想将附件上传到服务器,当我点击上传按钮时,消息上传成功...文件未发送消息。 (上传的图片必须保存在uploads文件夹中。)

index.html


<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>Camera </title>
        <link rel="stylesheet" href="sample.css" type="text/css" media="screen">
    </head>
    <body>
           <form id="form" method="post" enctype="multipart/form-data">
           <div style="margin-top:3rem;margin-left: 30%;">
                    <input type="file" name="file1" id="take-picture" accept="image/*" >
               </div>              
                <div style="margin-top: 2rem; margin-left: 10%;">
                    <img src="about:blank" alt="" id="show-picture" height="50%" width="50%">

                </div>
           <div style="margin-top: 3rem;margin-left: 30%;">

              <button id="upload">Upload</button>
              </div>

</form>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script>
        <script src="sample.js"></script>


    </body>
</html>




sample.js

$(function() {
    $('#form').submit(function(e) {
        e.preventDefault();
        data = new FormData($('#form')[0]);
        console.log('Submitting');
        alert(data);
        $.ajax({
            type: 'POST',
            url: 'upload.php',
            data: data,
            cache: false,
            contentType: false,
            processData: false
        }).done(function(data) {
            console.log(data);

            alert(data);

        }).fail(function(jqXHR,status, errorThrown) {
            console.log(errorThrown);
            console.log(jqXHR.responseText);
            console.log(jqXHR.status);
        });
    });
});



upload.php

<?php
if($_FILES['img']['error'] > 0) die('Error ' . $_FILES['file']['error']);
if(empty($_FILES['img']['name'])) die('No file sent.');

$tmp = $_FILES['img']['tmp_name'];

if(is_uploaded_file($tmp))
{
    if(!move_uploaded_file($tmp, '/uploads/')) echo 'error !';

}
else echo 'Upload failed !';
?>


folder---- uploads (where images have to be saved)`enter code here`

【问题讨论】:

标签: javascript php html ajax


【解决方案1】:

您的 php 中的 $_FILES 键与表单中的输入文件不匹配... 首先让事情匹配......如果你的 HTML

<input type="file" name="file1" id="file1" accept="image/*" >

然后在 PHP 上

$_FILES['file1']['error']...
$_FILES['file1']['name']...

另外...

您是否检查了要存储文件的文件夹的权限?

远程用户可以写信到 /uploads/ 吗?

【讨论】:

  • 0) die('Error ' . $_FILES['file1']['error']); if(empty($_FILES['file1']['name'])) die('没有文件发送。'); $tmp = $_FILES['file1']['tmp_name']; if(is_uploaded_file($tmp)) { if(!move_uploaded_file($tmp, 'img.png')) echo 'error !'; } else echo '上传失败!'; ?>
  • 改变了,但同样的问题
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-09-29
  • 1970-01-01
  • 2018-08-05
  • 2022-01-22
  • 2015-05-29
  • 1970-01-01
相关资源
最近更新 更多