我想传递文件的值来使用jQuery捕获php。 有没有办法将文件的值传递给catch.php,以便var_dump($ _ FILES)输出somthing?
------的index.php ------------
<p>Name: <input type="text" name="name" id="name" /></p>
<p>Picture: <input type="file" name="pic" id="pic" />)</p>
<p><a href="#" id="submit" >POST</a></p>
<div id="result"></div>
<script type="text/javascript" src="js/jquery-1.3.2.min.js"></script>
<script type="text/javascript">
$("#submit").click(function(){
$.post(
'catch.php',
{name: $('#name').val(), pic: $('#pic').val()},
function(result){
$("#result").html(result);
},
"html"
);
});
</script>
---------- catch.php -----------------
<?php
var_dump($_POST);
var_dump($_FILES);
?>
答案 0 :(得分:1)
javascript沙箱不允许使用xhr上传文件。您可以通过将表单提交到隐藏的iframe来解决此限制,但您尝试执行的操作将无法正常工作。
答案 1 :(得分:0)
如果你想进行文件上传 - 或者只是需要文件名,可以在this link找到一些相关的信息。
答案 2 :(得分:0)
作为替代方案,YUI框架有一个上传器组件来解决这个问题 - 它使用上面列出的隐藏的iframe方法,但是透明地为你处理它。
答案 3 :(得分:0)
这是未经测试的,但我想它与此类似。请提交修改。
的javascript:
$("button").click(function(){
$.post("photobridge.php",
{
filepath="/images/your_image.png";
name="Image Name"
},
function(data,status){
alert("Data: " + data + "\nStatus: " + status);
});
});
PHP:
<?php
$filepath=Request.Form("filepath")
$name=Request.Form("name")
HTTPResponse::send("Image location".$filepath.";")
HTTPResponse::send("Image name".$name.".")
答案 4 :(得分:-1)
你不需要jQuery - 你只需要在表单上提交一个提交按钮。
所以:
<form action='catch.php' method='post' />