我尝试了一个简单的帖子值传递给另一个形式,这是互联网上的例子。所有这些都有效,但是当我尝试在我自己的表单上实现时,它确实工作......我也尝试使用会话。但是没有运气..有人可以帮助我..这是我的第一个表单代码..表单用于使用AJAX上传多个文件,并通过upload.php将其他信息保存到mysql,其中post值应该去。 / p>
index.php - 上传表单
<form action="upload.php" method="post" enctype="multipart/form-data">
<?php
$cat = @$_GET['cat'];
$subcat = @$_GET['subcat'];
$qqq = @$_GET['qqq'];
$con = @$_GET['con'];
$quer2="SELECT DISTINCT category,cat_id FROM category order by category";
if (isset($cat) and strlen($cat) > 0) {
$quer = "SELECT DISTINCT subcategory FROM subcategory where cat_id=$cat order by subcategory";
} else {
$quer="SELECT DISTINCT subcategory FROM subcategory order by subcategory";
}
echo "<p>Category: ";
//File Category
echo "<div class='dropdown'><select id='cat' name='cat' onchange=\"reload(this.form)\" class='dropdown-select'><option value=''>Click to Select</option>";
foreach ($dbo->query($quer2) as $noticia2) {
if ($noticia2['cat_id'] == @$cat) {
echo "<option selected value='$noticia2[category]'>$noticia2[category]</option>"."<BR>";
} else {
echo "<option value='$noticia2[cat_id]'>$noticia2[category]</option>";
}
}
echo "</select></div>";
//File Sub-Category
echo "<div class='dropdown'><select id='subcat' name='subcat' class='dropdown-select'><option value=''>Click to Select</option>";
foreach ($dbo->query($quer) as $noticia) {
echo "<option value='$noticia[subcategory]'>$noticia[subcategory]</option>";
}
echo "</select></div>";
//File Type
echo "<div class='dropdown'><select id='qqq' name='qqq' onClick='#' class='dropdown-select'>
<option value=''".(($qqq == '') ? " selected='selected'":"").">Click to Select</option>
<option value='Photos'".(($qqq == 'Photos') ? " selected='selected'":"").">Photos/Images</option>
<option value='Videos'".(($qqq == 'Videos') ? " selected='selected'":"").">Audios/Videos</option>
<option value='PDF'".(($qqq == 'PDF') ? " selected='selected'":"").">PDF Documents</option>
<option value='Word'".(($qqq == 'Word') ? " selected='selected'":"").">Word Documents</option>
<option value='Presentation'".(($qqq == 'Presentation') ? " selected='selected'":"").">Power Point Presentation</option>
<option value='Zip'".(($qqq == 'Zip') ? " selected='selected'":"").">Compressed Documents</option>";
echo "</select></div></p>";
$quer2="SELECT DISTINCT name,id FROM user order by name";
echo "<p>Contributor: ";
//Contributors
echo "<div class='dropdown' style='width:600px;'><select id='con' name='con' class='dropdown-select' style='width:600px;'><option value=''>Click to Select</option>";
foreach ($dbo->query($quer2) as $contributor) {
if ($contributor['id'] == @$con) {
echo "<option selected value='$contributor[name]'>$contributor[name]</option>"."<BR>";
} else {
echo "<option value='$contributor[name]'>$contributor[name]</option>";
}
}
echo "</select></div></p>";
?>
<input type="text" name="sam" id="sam" value="sample" />
<div id="mulitplefileuploader" name="photos">Choose File(s)</div>
<div id="status" ></div>
<script>
$(document).ready(function() {
var settings = {
url: "upload.php",
method: "POST",
allowedTypes:"jpg,jpeg,png,bmp,gif,mp3,mp4,avi,mpeg,flv,wmv,3gp,txt,doc,docx,ppt,pdf,zip,rar",
fileName: "myfile",
multiple: true,
onSuccess:function(files,data,xhr) {
$("#status").html("<font color='green'></font>");
},
onError: function(files,status,errMsg) {
$("#status").html("<font color='red'>Failed.</font>");
}
}
$("#mulitplefileuploader").uploadFile(settings);
});
</script>
</form>
以及post值应该去的upload.php ..
<?php
error_reporting(0);
session_start();
include('config.php');
//Variables
//Function to sanitize values received from the form. Prevents SQL injection
function clean($str) {
$str = @trim($str);
if (get_magic_quotes_gpc()) {
$str = stripslashes($str);
}
return mysql_real_escape_string($str);
}
$cat = $_SESSION['cat'];
$subcat=$_POST['sam'];
$session_id='auto'; //$session id
define ("MAX_SIZE","500000");
function getExtension($str) {
$i = strrpos($str,".");
if (!$i) { return ""; }
$l = strlen($str) - $i;
$ext = substr($str,$i+1,$l);
return $ext;
}
//If directory doesnot exists create it.
$output_dir = "upload/";
if (isset($_FILES["myfile"])) {
$ret = array();
$error = $_FILES["myfile"]["error"];
// { // ????
// single file
if (!is_array($_FILES["myfile"]['name'])) {
$fileName = $_FILES["myfile"]["name"];
$size=filesize($_FILES['myfile']['tmp_name'][$name]);
//get the extension of the file in a lower case format
$ext = getExtension($filename);
$ext = strtolower($ext);
$uploaderid = $_SESSION['SESS_ID'];
$uploadername = $_SESSION['SESS_PRO_PIC'];
$uploadcat = $_POST['cat'];
//get filename combined with time
$image_name = time().$filename;
$Ficon = 'images/Dicon.png';
$image_title = $fileName;
echo "<img src='".$output_dir.$image_name."'>";
$newname = $output_dir.$image_name;
move_uploaded_file($_FILES["myfile"]["tmp_name"], $output_dir. $_FILES["myfile"]["name"]);
//Save Details
$time = time();
mysql_query("INSERT INTO `udocs`(file_id,file_name,category,file_size,file_type,file_path,uploader_id,author,file_icon,date_upload,time_upload,image_album,section,subject)
VALUES ('$session_id','$image_title','$uploadcat','$size','$ext','upload/$image_title','$uploaderid','$uploadername','$Ficon','" . $_POST["fudate"] ."','" . $_POST["futime"] ."','" . $_POST["fualbum"] ."','$cat','$subcat')");
$ret[$fileName]= $output_dir.$fileName;
} else {
$fileCount = count($_FILES["myfile"]['name']);
for ($i=0; $i < $fileCount; $i++) {
$fileName = $_FILES["myfile"]["name"][$i];
$size=filesize($_FILES['myfile']['tmp_name'][$name]);
//get the extension of the file in a lower case format
$ext = getExtension($filename);
$ext = strtolower($ext);
$ret[$fileName] = $output_dir.$fileName;
$uploaderid = $_SESSION['SESS_ID'];
$uploadername = $_SESSION['SESS_PRO_PIC'];
$uploadcat ='Photos/Images';
//get filename combined with time
$image_name = time().$filename;
$Ficon = 'images/Dicon.png';
$image_title=$filename;
echo "<img src='".$output_dir.$image_name."'>";
$newname = $output_dir.$image_name;
//Sanitize the POST values
move_uploaded_file($_FILES["myfile"]["tmp_name"][$i], $output_dir.$fileName );
//Save Details
$time = time();
mysql_query("INSERT INTO `udocs`(file_id,file_name,category,file_size,file_type,file_path,uploader_id,author,file_icon,date_upload,time_upload,image_album,section,subject)
VALUES ('$session_id','$image_title','$uploadcat','$size','$ext','$newname','$uploaderid','$uploadername','$Ficon','" . $_POST["fudate"] ."','" . $_POST["futime"] ."','" . $_POST["fualbum"] ."','$cat','$subcat')");
}
}
}
echo json_encode($ret);
// } // ?? this must close the unmatched, useless opening brace above
?>
答案 0 :(得分:0)
我不确定你明白你做了什么。您在页面加载后立即调用uploadFile
函数。
对我来说,你必须用from加载页面,然后用户将在他的电脑上选择一些文件,然后他将提交表格,你必须上传他的文件。所以你必须在表单提交上调用函数uploadFile
,但不像你那样。
您需要以下代码中的内容。
jQuery的:
$(document).ready(function()
{
$(document).on('submit','form#formId',function() {
var settings = {
url: "upload.php",
method: "POST",
allowedTypes:"jpg,jpeg,png,bmp,gif,mp3,mp4,avi,mpeg,flv,wmv,3gp,txt,doc,docx,ppt,pdf,zip,rar",
fileName: "myfile",
multiple: true,
onSuccess:function(files,data,xhr)
{
$("#status").html("<font color='green'></font>");
},
onError: function(files,status,errMsg)
{
$("#status").html("<font color='red'>Failed.</font>");
}
}
$("#mulitplefileuploader").uploadFile(settings);
}
});
在HTML中,您必须在表单中添加id
属性:
<form action="upload.php" id='formId' method="post" enctype="multipart/form-data">
旧答案已删除