Polymer,发一张ajax-形式的图片

Polymer, send a picture with ajax-form

我实际上尝试在我的服务器上发送图片,但他没有收到。

我的表格:

<form is="ajax-form" action="../../../back/saveIMG.php" method="post" enctype="multipart/form-data">
                                    
  <input type="file" name="pic" id="pic "accept="image/*">

  <br/>
  <input type="submit" name="submitInfo">
</form>

还有我的 php 脚本:

<?php
error_reporting(E_ALL | E_STRICT);
$target_dir = "uploads/";
$target_file = $target_dir . basename($_FILE["pic"]["name"]);
$uploadOk = 1;
$imageFileType = pathinfo($target_file,PATHINFO_EXTENSION);
var_dump($_POST);
if(isset($_POST["submitInfo"])) {

    $check = getimagesize($_FILE["pic"]["tmp_name"]);
    if($check !== false) {
        $uploadOk = 1;
    } else {
        $uploadOk = 0;
    }
}
var_dump($uploadOk);
if ($uploadOk == 1) {
    $res = move_uploaded_file($_FILE["pic"]["tmp_name"], $target_file);
    var_dump($res);
}

?>

我的脚本正常 运行,我之前测试过,但他只收到一个包含图片名称的 post 数组。

不需要 JavaScript。正在发送文件,您可以通过查看您选择的开发工具中的网络选项卡来验证。

获取文件 PHP 表示的句柄:$_FILES['pic'];。文件字节将存储在 $_FILES['pic']['tmp_name']。有关更多示例,请查看 Fine Uploader PHP server-side example,它处理通过不相关的 JavaScript 库上传的文件。

Ajax-form 将像传统表单一样发送文件,前提是浏览器支持文件 API。如果您使用的是 IE9 或更早版本,那您就不走运了。

虽然您可以使用简单的 <input type="file">,但您也可以使用 <file-input> element. Disclaimer: I wrote <file-input>, the ajax-form element, and Fine Uploader