-2
我想上傳文件並用jquery ajax將其保存在服務器上。我試過了,但沒有奏效。它不想處理它。這是我做的:用ajax上傳表單文件
HTML代碼
<form action="" method="post" enctype="multipart/form-data">
<input type="file" name="submit_file" id="submit_file" required >
<input type="text" name="submit_message" id="submit_message">
</form>
<a href="javascript:upload();" ><img src="img/join_btn.png" /></a>
驗證和Ajax
<script type="text/javascript">
function upload()
{
var $submit_file = $("#submit_file").val();
var $submit_message = $("#submit_message").val();
if($submit_file == '')
{
alert('please choose your picture');
$('#submit_file').focus();
//return false;
}
else if($submit_message == '')
{
alert('please write message');
$('#submit_message').focus();
//return false
}
else
{
uploadFile();
}
}
</script>
<script type="text/javascript">
function uploadFile()
{
var $submit_file = '';
var $submit_message = '';
if($("#submit_file").val()) {$submit_file = $("#submit_file").val()};
if($("#submit_message").val()) {$submit_message = $("#submit_message").val()};
$.ajax(
{
global: false,
cache: false,
url: "./proc_intro.php",
type: "POST",
data:
{
submit_file: $submit_file,
submit_message: $submit_message,
},
dataType: "json",
success: function(json) {
if (json.result == "success")
{
//alert('success');
setTimeout(function(){
showLayer('main_submit');
},1000);
}
else
{
alert('server error');
}
}
}
);
}
</script>
proc_intro.php文件
<?php
$submit_file = $_REQUEST[submit_file];
$submit_message = $_REQUEST[submit_message];
$allowed_filetypes = array('.jpg','.gif','.bmp','.png');
$max_filesize = 524288;
$upload_path = './images/';
$filename = $_FILES[$submit_file]['name'];
$ext = substr($filename, strpos($filename,'.'), strlen($filename)-1);
if(!in_array($ext,$allowed_filetypes))
die('The file you attempted to upload is not allowed.');
if(filesize($_FILES['submit_file']['tmp_name']) > $max_filesize)
die('The file you attempted to upload is too large.');
if(!is_writable($upload_path))
die('You cannot upload to the specified directory, please CHMOD it to 777.');
if(move_uploaded_file($_FILES['submit_file']['tmp_name'],$upload_path . $filename))
{
echo '{"result":"success"}';
}else
{
echo '{"result":"fail"}';
}
?>
我能做些什麼來獲取文件是正確使用ajax上傳? 你有什麼想法嗎?先謝謝你。