0

我有一个通过<input type=file>函数上传图片的功能。

这是我的脚本

 function readURL(input) {
   if (input.files && input.files[0]) {
            var reader = new FileReader();


            reader.onload = function (e) {
                $('.prw_img').attr('src', e.target.result).width(112).height(112);

                };

            reader.readAsDataURL(input.files[0]);
        }
    }

我的 HTML 代码是

    <img  class= "prw_img" style="width:112px;height:112px;"/>

    <input id="file" type="file" onchange="readURL(this);" name="files[]">

我正在预览该<img>标签中的图像。有没有办法将此上传的图像保存到我的系统

这是BIN

而且我也不想弹出一个保存为对话框来打开。有没有办法将图像存储在数据库中

4

2 回答 2

0

你的 JS 应该如下所示。它使用 AJAX 上传

jQuery('document').ready(function(){

    var input = document.getElementById("file");
    var formdata = false;
    if (window.FormData) {
        formdata = new FormData();
    }
    input.addEventListener("change", function (evt) {

        var i = 0, len = this.files.length, img, reader, file;

        for ( ; i < len; i++ ) {
            file = this.files[i];

            if (!!file.type.match(/image.*/)) {
                if ( window.FileReader ) {
                    reader = new FileReader();
                    reader.onloadend = function (e) { 
                        //showUploadedItem(e.target.result, file.fileName);
                    };
                    reader.readAsDataURL(file);
                }

                if (formdata) {
                    formdata.append("image", file);
                }




                    jQuery.ajax({
                        url: "upload.php",
                        type: "POST",
                        data: formdata,
                        processData: false,
                        contentType: false,
                        success: function (res) {
                            alert('success');
                        }
                    });
                }
            }
            else
            {
                alert('Not a vaild image!');
            }   
        }

    }, false);


});

PHP - upload.php - 在 php 级别检索如下数据

<?php
if ($_FILES["file"]["error"] > 0)
  {
  echo "Error: " . $_FILES["file"]["error"] . "<br>";
  }
else
  {
  echo "Upload: " . $_FILES["file"]["name"] . "<br>";
  echo "Type: " . $_FILES["file"]["type"] . "<br>";
  echo "Size: " . ($_FILES["file"]["size"] / 1024) . " kB<br>";
  echo "Stored in: " . $_FILES["file"]["tmp_name"];
  }
?>
于 2013-01-07T07:21:31.943 回答
-1

到目前为止,我知道,javascript 不能单独完成。那么这将是一个很大的安全漏洞。您必须在它旁边使用 PHP/其他支持语言。

于 2013-01-07T07:26:36.510 回答