我试图将单个文件发送到服务器而无需更改网页。我决定使用这个插件:http://cmlenz.github.com/jquery-iframe-transport/ 我对如何在不更改网页的情况下继续上传感到困惑... uploadimg.php返回:
<br />
<b>Notice</b>: Undefined index: photo in <b>C:\website\uploadimg.php</b> on line <b>2</b><br />
<br />
<b>Notice</b>: Undefined index: photo in <b>C:\website\uploadimg.php</b> on line <b>3</b><br />
<img src="userimg/" />
我的档案:
postAd.php
<html>
<head>
<script src="jquery.js"></script>
<script src="jquery-iframe-transport.js"></script>
<script>
$(document).ready(function(){
$('#photo1').on('change', function(){
$.ajax({
url: "uploadimg.php",
files: $("#photo1:file"),
iframe: true,
processData: false
}).done(function(data){
console.log(data);
});
});
});
</script>
</head>
<body>
<input type='file' name='photo' id='photo1' /></br>
</body>
</html>
uploadimg.php
<?php
$file_tmp = $_FILES['photo']['tmp_name'][0];
$file = $_FILES['photo']['name'][0];
move_uploaded_file($file_tmp, "userimg/$file");
echo '<img src="userimg/' .$file .'" />';
?>
答案 0 :(得分:0)
您没有提交表单,因此“照片”字段不会随AJAX调用一起发送。如果您有可用的调试器,请检查$ _FILES数组以查看已填充的内容。从this开始,您可能正在寻找“用户文件”索引,但我不确定。
答案 1 :(得分:0)
function upload(event) {
var formData = new FormData($('#uploadForm')[0]);
$.ajax( {
url : "upload.do",
type : "POST",
data : formData,
cache : false,
contentType : false,
processData : false,
});
@RequestMapping(value = "/uploadCsr", method = RequestMethod.POST)
@ResponseBody
public String uploadCsr(@RequestParam("fileUpload") MultipartFile file, HttpServletResponse response) {
// read the file using inputstream
}
答案 2 :(得分:-1)
经过大量搜索后,我发现使用ajax上传这个简单易用的文件。 你可以在upload in php without refreshing
找到它