nun*_*unu 9 php ajax jquery file-upload
在尝试将提交和上传组合在一个表单中时,我在上传时遇到问题但是对于提交表单没有问题.
JQuery + Ajax:
$("#oqcsubmit").click(function() {
if($("#oqc").valid()) {
var params=$("#oqc").serialize();
$.ajax({
type:"post",
url:"doinput.php",
data:params,
cache :false,
async :false,
success : function() {
$(".dt").val("");
$(".stat").val("");
return this;
},
error : function() {
alert("Data failed to input.");
}
});
return false;
}
});
<form id="oqc" enctype="multipart/form-data" >
<input type="text" id="mod" name="mod" class="dt"/>
<input type="text" id="no" name="no" class="dt"/>
<input id="filename" name="uploadedfile" type="file" />
<input type="submit" id="oqcsubmit" value="Submit" />
<input type="hidden" name="action" value="oqcdata" />
</form>
Run Code Online (Sandbox Code Playgroud)
PHP:
$dbc=mysql_connect(_SRV,_ACCID,_PWD) or die(_ERROR15.": ".mysql_error());
$db=mysql_select_db("QPL",$dbc) or die(_ERROR17.": ".mysql_error());
$target_path = "data/";
$target_path = $target_path . basename( $_FILES['uploadedfile']['name']);
//print_r($_FILES);
if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path)) {
echo "The file ". basename( $_FILES['uploadedfile']['name']). " has been uploaded";
}
else{
echo "There was an error uploading the file, please try again!";
}
switch(postVar('action')) {
case 'oqcdata' :
oqcdata(postVar('mod'),postVar('no'));
break;
}
function oqcdata($mod,$no) {
$Model = mysql_real_escape_string($mod);
$Serial = mysql_real_escape_string($no);
//build query
$sql = "INSERT INTO OQC (Model, Serial) VALUES ('".$Model."','".$Serial."')";
echo $sql;
$result=mysql_query($sql) or die(_ERROR26.": ".mysql_error());
echo $result;
mysql_close($dbc);
Run Code Online (Sandbox Code Playgroud)
如何在这个页面中正确放置上传代码?所以两者都可以工作.目录权限:chmod 777 data
提交后,文件在表单中留下(不发送).

UPDATE
在切换之前移动上传代码后我得到了错误:
PHP Notice: Undefined index: uploadedfile
Run Code Online (Sandbox Code Playgroud)
这意味着表格不发送uploadedfile价值.检查参数后,没有uploadedfile包含.为什么会这样?即使这个值包含在表单中并使用.serialize().
form data :
mod:KD-R321ED
no:177X1000 // where is the uploaded file value?
action:oqcdata
Run Code Online (Sandbox Code Playgroud)
Run Code Online (Sandbox Code Playgroud)PHP Notice: Undefined index: uploadedfile这意味着表单不发送 uploadedfile 值。检查参数后发现没有上传的文件。为什么会发生?
您无法通过普通的跨浏览器 ajax 上传文件,例如 jQuery 使用的。句号,句号,故事结束。
如果您必须在不刷新页面的情况下进行上传,常见的技巧是创建一个iframe表单并向其提交表单。另一个技巧是使用实验性的File API,它作为 HTML5 的一部分公开。自己处理这些可能会很痛苦,但如果你想手动完成这一切,它应该会很有效。
我强烈建议为此使用第三方文件上传小部件。我很幸运地使用了Plupload,但有些人也推荐了Uploadify。他们都可以选择使用 Flash 或 HTML5 后端来执行上传,这也为用户提供了一个愉快的小进度表。
| 归档时间: |
|
| 查看次数: |
702 次 |
| 最近记录: |