我实际上尝试在我的服务器上发送图片,但他没有收到。
我的表格:
<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);
}
&GT?;
我的脚本正常运行,我之前测试过,但他只是收到一个带有图片名称的帖子数组。
答案 0 :(得分:1)
不需要JavaScript。正在发送文件,您可以通过查看所选开发工具中的网络选项卡进行验证。
获取文件的PHP表示形式的句柄:$_FILES['pic'];
。文件字节将存储在$_FILES['pic']['tmp_name']
。有关更多示例,请查看Fine Uploader PHP server-side example,它处理通过不相关的JavaScript库上传的文件。
如果浏览器支持File API,Ajax-form将像传统表单一样发送文件。如果你使用的是IE9或更早的版本,那你就不走运了。
虽然您可以使用简单的<input type="file">
,但您也可以使用<file-input>
element。免责声明:我写了<file-input>
,ajax-form元素和Fine Uploader。