我想改变上传按钮的样式,用的是以下代码:<html>
<head>
<title>File Upload Example</title>
<script language="JavaScript" type="text/javascript">
function HandleFileButtonClick()
{
document.frmUpload.myFile.click();
document.frmUpload.txtFakeText.value = document.frmUpload.myFile.value;
}
</script>
</head>
<body>
<form name="frmUpload">
<input type="file" name="myFile" style="display: none">
<input type="text" name="txtFakeText" readonly="true">
<input type="button" onclick="HandleFileButtonClick();" value="Browse">
</form>
</body>
</html>现在问题来了,如何获取上传文件的相关信息?比如在服务器端的路径和临时文件名?
也就是我现在在php中引用myFile时,无效。我估计是因为style="display: none"有关系。请达人指教!
<head>
<title>File Upload Example</title>
<script language="JavaScript" type="text/javascript">
function HandleFileButtonClick()
{
document.frmUpload.myFile.click();
document.frmUpload.txtFakeText.value = document.frmUpload.myFile.value;
}
</script>
</head>
<body>
<form name="frmUpload">
<input type="file" name="myFile" style="display: none">
<input type="text" name="txtFakeText" readonly="true">
<input type="button" onclick="HandleFileButtonClick();" value="Browse">
</form>
</body>
</html>现在问题来了,如何获取上传文件的相关信息?比如在服务器端的路径和临时文件名?
也就是我现在在php中引用myFile时,无效。我估计是因为style="display: none"有关系。请达人指教!
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta http-equiv="Content-Style-Type" content="text/css">
<meta http-equiv="Content-Script-Type" content="text/javascript"> <title>input type=form Test Page</title> <script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript" src="js/jquery.inputform.js"></script> <link rel="stylesheet" href="css/form.css" type="text/css">
<link rel="stylesheet" href="css/jquery.inputform.css" type="text/css">
<script type="text/javascript"> $().ready(function(){
$("input.select1").inputfile();
$("input.select2").inputfile({button:"<img src='img/select.gif'>"});
});
</script>
</head>
<body> <fieldset class="form_fieldset">
<legend>Input type styling</legend>
<table class="form_table">
<tr>
<td class="caption">Upload File:</td>
<td class="input"><input type="file" name="sfile" class="select1"/></td>
</tr>
<tr>
<td class="caption">Main Image:</td>
<td class="input"><input type="file" name="name" class="select2"/></td>
</tr>
</table>
</fieldset> </body>
</html>div.fakefile { position: absolute; top: 0px; left: 0px; z-index: 1;}
input.file { left: -140px;position: relative; -moz-opacity:0 ; filter:alpha(opacity:0); opacity: 0; z-index: 2;}(function($) {$.fn.inputfile=function(options){ var settings = {
button:"<button>Select file</botton>"
}; $.extend(settings, options);
this.each(function(){ var block_div=$("<div></div>").css({position: "relative"});
var fake_div=$("<div></div>").addClass("fakefile");
var button=$(settings.button);
$(this).addClass("file"); $(this).wrap(block_div).after(fake_div.append(button));
});
}})(jQuery);
PHP段获取用$_FILE数组试试
$_FILES数组内容如下:$_FILES['myFile']['name'] 客户端文件的原名称。
$_FILES['myFile']['type'] 文件的 MIME 类型,需要浏览器提供该信息的支持,例如"image/gif"。
$_FILES['myFile']['size'] 已上传文件的大小,单位为字节。
$_FILES['myFile']['tmp_name'] 文件被上传后在服务端储存的临时文件名,一般是系统默认。可以在php.ini的upload_tmp_dir 指定,但 用 putenv() 函数设置是不起作用的。
$_FILES['myFile']['error'] 和该文件上传相关的错误代码。['error'] 是在 PHP 4.2.0 版本中增加的。下面是它的说明:(它们在PHP3.0以后成了常量)
UPLOAD_ERR_OK
值:0; 没有错误发生,文件上传成功。
UPLOAD_ERR_INI_SIZE
值:1; 上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值。
UPLOAD_ERR_FORM_SIZE
值:2; 上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值。
UPLOAD_ERR_PARTIAL
值:3; 文件只有部分被上传。
UPLOAD_ERR_NO_FILE
值:4; 没有文件被上传。
值:5; 上传文件大小为0
lz是想改变上传文件的按钮?
document.frmUpload.myFile.value里啥都没有 你把它付给别的值干啥
你选择本地文件后,文件的路径是放在 name="txtFakeText" readonly="true" 里面的,
应该 document.frmUpload.myFile.value=document.frmUpload.txtFakeText.value ;
然后在submit
name="txtFakeText" readonly="true" 里面的是在客户端的文件路径。
如果我要打开上传后服务器端后的这个文件,是需要其temp_name的。
也就是,我现在如何用php取得其服务器端的路径。
ps:js不知道能否获得这个路径。js能连接服务器端吗?用ajax?