<form method="post" id="sform" name="sform" action="do.php?x=save">
<table width="100%" cellpadding="10" cellspacing="1" align="center" border="0" bgcolor="#A8BCF3">
<tr bgcolor="#ffffff">
<td>
<span id="imgSelectBox"><input type="file" id="imgsrc" name="imgsrc" value="" /></span> <input type="hidden" id="uploadimg" name="uploadimg" value="" />
</td>
</tr>
<tr bgcolor="#ffffff">
<td>
<input type="submit" id="sSubmit" name="sSubmit" value="保存记录" />
</td>
</tr>
</table>
</form>
JS:
$('#imgsrc').live('change',function () {
//获取上传文件
var formData = new FormData();
formData.append('imgsrc', $('#imgsrc')[0].files[0]);
//提交后台处理
$.ajax({
url: 'upload.php?x=upload',
type: 'POST',
cache: false,
data: formData,
dataType: 'JSON',
processData: false,
contentType: false,
error: function(request) {
alert('Connection error : '+request.text);
},
success: function(data) {
var jsonData = data;
if (jsonData[0].status == 1) {
$('#imgSelectBox').html(jsonData[0].msg);
$('#uploadimg').val(jsonData[0].url);
}
else {
$('#imgSelectBox').html(jsonData[0].msg);
$('#uploadimg').val('');
}
}
});
});
PHP:
$uploadFolder = 'upload';
$FILE_EXTS = array('jpg','png','gif','jpeg','pdf','doc');
$file_type = $_FILES['imgsrc']['type'];
$file_name = $_FILES['imgsrc']['name'];
//$uploadFile = $uploadFolder.basename($file_name);
$file_ext_rev = strrev($file_name);
$file_ext_array = explode('.',$file_ext_rev);
$file_ext = $file_ext_array[0];
$file_ext = strrev($file_ext);
$file_ext = strtolower($file_ext);
$MAX_SIZE = 2;//2MB
$url = '';
if (!is_dir($uploadFolder)) {
if (!mkdir($uploadFolder,0777)) {
$codes = 0;
$msg = '目录..'.$uploadFolder.'不存在,请手动建立, [<a class="reset_uploadbox" href="javascript:void(0);">返回</a>]';
die('[{"status":"'.$codes.'","msg":"'.addslashes($msg).'"}]');
}
if (!chmod($uploadFolder,0777)) {
$codes = 0;
$msg = '目录..'.$uploadFolder.'权限设置失败,请手动设置, [<a class="reset_uploadbox" href="javascript:void(0);">返回</a>]';
die('[{"status":"'.$codes.'","msg":"'.addslashes($msg).'"}]');
}
}
if ($_FILES['imgsrc']['size'] > $MAX_SIZE*1024*1024) {
$codes = 0;
$msg = '<font color="#ff0000">上传失败</font>:文件大小不能超过 '.$MAX_SIZE.'MB , [<a class="reset_uploadbox" href="javascript:void(0);">返回</a>]';
}
elseif (!in_array($file_ext, $FILE_EXTS)) {
$codes = 0;
$msg = '<font color="#ff0000">上传失败</font>:不允许上传.'.$file_ext.'格式的文件 , [<a class="reset_uploadbox" href="javascript:void(0);">返回</a>]';
}
else {
//$rand = rand(100, 999);
//$file_name = date('Y-m-d').'-'.date('His').'-'.$rand.'.'.$file_ext;
$file_name = date('Y-m-d').'-'.date('His').'.'.$file_ext;
$res = move_uploaded_file($_FILES['imgsrc']['tmp_name'], $uploadFolder.$file_name);
if ($res) {
$codes = 1;
$msg = '<font color="green">上传成功</font>:<a href="'.$uploadFolder.$file_name.'" target="_blank">'.$file_name.'</a> 【<a class="clear_upload_record" href="javascript:void(0);">重新上传</a>】';
$url = $uploadFolder.$file_name;
}
else {
$codes = 0;
$msg = '<font color="#ff0000">上传失败</font>:未知错误, [<a class="reset_uploadbox" href="javascript:void(0);">返回</a>]';
}
}
echo '[{"status":"'.$codes.'","msg":"'.addslashes($msg).'","url":"'.$url.'"}]';