【问题标题】:Upload Code Not Working in PHP上传代码在 PHP 中不起作用
【发布时间】:2015-10-14 15:06:39
【问题描述】:

有一个 HTML 和一个 PHP 来将图像上传到服务器。我以前使用过相同的代码,它工作正常,但我不知道为什么它现在不能工作,

或者它可能是我使用代码的地方不合适。下面是代码。 HTML 从用户那里获取输入

<form action ="login.php" method="POST">
    <label >USername :</label><br/>
    <input type="text" name ="userid"    /><br/>
    <label >Password :</label><br/>
    <input type="password" name="pid"  /><br><br/>
    <input type="submit" value ="Login"  />
</form>

用于 login.php 的 PHP

   <?php  
        $x = 1;
        while($row = mysqli_fetch_array($result)){
           echo $x.'<br/>';
         ?>

//Form to upload the image
 <form enctype="multipart/form-data" id="form" action="" method="post">
        <input type="file"  id="image" name="img" />
        <img id="blah" src="#" alt="your image" /><br/><br/>
        <input type="button" value="upload" onclick="javascript:uploadInage();" />
    </form>
<script type="text/javascript">
        function uploadInage()
        {
        var file_data = $('#image').prop('files')[0];   
        var form_data = new FormData();                  
        form_data.append('file', file_data);

            $.ajax({
                url: "file.php",
                dataType: 'text',  // what to expect back from the PHP script, if anything
                cache: false,
                contentType: false,
                processData: false,
                data: form_data,                         
                type: 'post',
                success: function (result) {
                        alert(result)

                }
            });
        }
    </script>
    <?
 echo "-------------------------------------------------------".'<br/>';
        $x = $x+1;

      }
      print_r($stores,$stores_add,$stores_chain,$jobs);
 }
 ?>

PHP 上传文件 文件.php

<?php

    $imagePath = "uploads/";
    $temp = explode(".", $_FILES["file"]["name"]);

    $extension = end($temp);

    $filename = $_FILES["file"]["tmp_name"];
    $time = time();
    move_uploaded_file($filename, $imagePath . $time . '.' . $extension);    
   echo "File Uploade";
   exit;
 ?>

请告诉我为什么这段代码不起作用。

【问题讨论】:

  • 你检查过file.php中的值吗?
  • 如何使用 AJAX 检查它,因为我通过 AJAX 发送整个表单。
  • 在浏览器中使用网络控制台file.php 就使用这个print_r($_FILES)
  • 你的代码让我很伤心。这是一个大杂烩。我什么都看不到。
  • 这不起作用,因为无法通过 ajax 上传文件

标签: javascript php html mysql ajax


【解决方案1】:
<form enctype="multipart/form-data" id="form" action="" method="post">
        <input type="file"  id="image" name="img" />
        <img id="blah" src="#" alt="your image" /><br/><br/>
        <input type="button" value="upload" onclick="javascript:uploadInage();" />
    </form>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>


<script type="text/javascript">
        function uploadInage()
        {
        var file_data = $('#image').prop('files')[0];   
        var form_data = new FormData();                  
        form_data.append('file', file_data);
            $.ajax({
                url: "file.php",
                dataType: 'text',  // what to expect back from the PHP script, if anything
                cache: false,
                contentType: false,
                processData: false,
                data: form_data,                         
                type: 'post',
                success: function (result) {
                        alert(result)

                }
            });
        }
    </script>

感谢我回来了。

刚刚添加了 jquery.min.js,它工作得很好。

【讨论】:

  • @I'mBack 还有几个问题。我应该在这里写还是发表另一个问题??
  • 取决于你在这里问我
  • 分享您的电子邮件 ID。发送屏幕截图和所有内容很容易。或者更好地检查我的其他问题。
  • 你的问题是什么?
  • 分享您的电子邮件好友,这很容易,然后我会发布问题并回答
【解决方案2】:

将此代码粘贴到login.php

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>

【讨论】:

    【解决方案3】:

    我猜你正在使用 ajax,所以你必须将此文件转换为 DataUrl 以通过 ajax 发送它

    var fileInput = document.getElementById('YourInputID');
    fileInput.addEventListener('change', function(e) {
       var file = fileInput.files[0];
       var imageType = /image.*/;
       if (file.type.match(imageType)) {
            var reader = new FileReader();
            reader.onload = function(e) {
                $("#myTextAreaID").val(reader.result)
            }
            reader.readAsDataURL(file); 
        }
    });
    

    它将您的文件转换为数据 url,然后在将其保存到 textarea 之前,您现在可以通过 ajax 发送它

    使用 php 脚本将其转换为图像

    convert_data_url($data_url,$idFile,$folder) {
    $image = base64_decode(str_replace('data:image/png;base64,','',$data_url));
    save_to_file($image,$idp,$size,$pasta);
    }
    function save_to_file($image,$idFile,$folder) {
    if(!file_exists($folder)){
        mkdir($folder);
    }
    $fp = fopen($folder."/".$idFile.".jpg", 'w');
    fwrite($fp, $image);
    fclose($fp);
    

    }

    所以你必须使用这个函数 convert_data_url($data_url,$idFile,$folder) 其中 data_url 是图像 id idFile 是您想要的名称 以及您要保存的文件夹。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-01-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多