『壹』 js动态创建的file控件,PHP 怎么获取上传的文件
首先,你的file控件要放到form表单内,其次,每个file控件的name属性应该不同。下面是我修改后的:
<html>
</head>
<script language="javascript" type="text/ecmascript">
var x=1;
//======================
//功能:在表单中input file控件
//参数:parentID---要插入input file控件的父元素ID
// inputID----input file控件的ID
//======================
function createInput(parentID,inputFileID){
var parent=$(parentID);//获取父元素
var div=document.createElement("div");//创建一个div容器用于包含input file
x++;
var divName=inputFileID+x;//随机div容器的名称
div.id=divName;
var aElement=document.createElement("input"); //创建input
aElement.name=divName;
aElement.type="file";//设置类型为file
var delBtn=document.createElement("input");//再创建一个用于删除input file的Button
delBtn.type="button";
delBtn.value="删除";
delBtn.onclick=function(){ removeInput(parentID,divName)};//为button设置onclick方法
div.appendChild(aElement);//将input file加入div容器
div.appendChild(delBtn);//将删除按钮加入div容器
parent.appendChild(div);//将div容器加入父元素
}
//============================
//功能:删除一个包含input file的div 容器
//参数:parentID---input file控件的父元素ID
// DelDivID----个包含input file的div 容器ID
//============================
function removeInput(parentID,DelDivID){
var parent=$(parentID);
parent.removeChild($(DelDivID));
}
//通过元素ID获取文档中的元素
function $(v){return document.getElementById(v);}
</script>
<body>
<form action="test.php" method="post" enctype="multipart/form-data">
<div align="left" id="div_Pic" style="border:1px solid #CCCCCC">
<input name="PicFile" type="file" id="ShowPicFile">
</div>
<input type="button" onClick="createInput('div_Pic','PicFile')" name="button" id="button" value="+ 继续添加图片">
<input type="submit" value="提交">
</body>
</html>
然后php就可以通过遍历$_FILES来获得每个上传的文件。下面的简单例子只是列出每个文件的原文件名:
<?php
forEach($_FILES as $f){
echo $f["name"]."<br>";
}
?>
『贰』 怎么获取JSP表单中file的值
JSP上传文件使用的开源抄组件UPload,获得file文件路径,可以使用如下方法:
String myFilepath=myFile.getFilePath();
获得该文件的路径,使用上述方法有一个前提就是必须确保已经上传成功。
『叁』 jquery 获取fileupload的完整路径。给完整的代码。直接可以用的
1首先是jsp
<button class="btn button uploadAndNext" id="importWhiteBtn" type="button">
<span class="button">提交导入</span>
</button>
2.然后是
$(function(){
var uploadCom = null;
function uploadIt() {
$("#importWhiteBtn").click(function() {
var uploadId = "#" + $(this).attr("id");
var btn = $(this);
uploadCom = new AjaxUpload( uploadId + "" , {
action : "whitePhoneNumber.do?action=importFile",
onSubmit: function(file, ext) {
if ((ext && /^(txt)$/.test(ext))) {
alert("请先下载导入模板readme.txt参考,您上传的文档格式不对,请重新选择!");
return false;
}
$.blockUI({
message:"正在上传到服务器...."
})
},
onComplete: function(file, response) {
$.unblockUI();
if(response=="success"){
alert( "导入成功");
$('#whitePhoneList').flexReload();
}else{
alert( "导入失败,"+response);
}
}
});
});
$(".uploadAndNext").click();
}
uploadIt();
firstClick = false;
})
3.最后是action
public ActionForward importFile(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) throws Exception{
FileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(factory);
String success = "success";
BufferedReader br=null;
InputStream in=null;
String operator = UserNameUtil.getUserName(request);
String areaCode = whitePhoneManager.getAreaCodeByOperator(operator);
try {
List<FileItem> list = upload.parseRequest(request);
for (int i = 0; i < list.size(); i++) {
FileItem fileItem = list.get(i);
String name = fileItem.getName().substring(
fileItem.getName().lastIndexOf("\\") + 1);
if(fileItem.getSize() > 2097152){//200k
throw new Exception(" 文件大小超过2M");
}
log.debug("upload file name:" + name);
in= fileItem.getInputStream();
br = new BufferedReader(new InputStreamReader(in));
whitePhoneManager.processFile(br,areaCode);
logutil.log_Operation(request, LogUtil.LOG_MODULE_SYSTEMCONFIG,
LogUtil.LOG_EVENT_CREATE, "批量导入短信白名单", "filename: "
+ name, "成功",
LogUtil.SUCCESS);
}
} catch (FileUploadException e) {
log.debug("error", e);
success=e.getMessage() ;
} catch (Exception e) {
log.debug("error", e);
success=e.getMessage() ;
}finally{
if(br!=null) try{br.close();}catch(Exception e){log.error("unable to close bufferdreader",e);}
if(in!=null) try{in.close();}catch(Exception e){log.error("unable to close inputstream",e);}
response.setContentType("text/html");
response.setCharacterEncoding("UTF-8");
response.getWriter().write( success );
return null;
}
}
『肆』 js获取文件路径怎么写
<script>
$("input[name=fileString]").change(function(){
//varnames=[];
for(vari=0;i<$(this).get(0).files.length;++i){
//names.push($(this).get(0).files[i].name);
//console.log($(this).get(0).files[i].mozFullPath);
//方式一:
varfilePath=$(this).val();
console.log(filePath);
//方式二:
alert($('input[type=file]').val());
}
//console.log(names);
//方式三:
alert($("input[name=fileString]").val());
})
</script>
注意:以上方式取到的都是文件的伪路径,由于浏览器的安全策略,Chrome浏览器及内核的浏览器是不可能获取文件在本地的真实路径的。IE浏览器可以通过设置安全级别,能获取到真实路径。
『伍』 如何保证JS文件控件获取完整路径
问题:Internet Explorer中,JS无法通过文件(file)控件获取到本地目录完整路径,返回如“C:\fakepath\...”错误。 解决:修改IE设置,工具 -> Internet选项 -> 安全 -> 自定义级别 -> 将文件上载到服务器时包含本地目录路径,改为启用即可。
『陆』 js文件选择框,我选好文件后,取不到正确路径, alert(document.getElementById('filepath').value);
文件路径:<input type="file" id="filepath"/>
<button onclick="alert(document.getElementById('filepath').value);">查看路径</button>
每次重选文件后,点击按钮查看。应该是没有问题啊
你是怎么操作的?
『柒』 在js文件中怎么获取自身的路径
file是一种特殊的input,不能被赋值,也不能被javascript取值,只能随表单提交,而且随表单提交的也是file路径所指向的文件本身。
这是浏览器安全原因所限制的,如果可以取值和赋值的话,那么javascript就可以随意获取你电脑上的文件了,这是非常危险的。
经过结合了HTML5提供的新技术FileHeader,成功地在file标签未作出提交前,分别获得了文件的:fileName、fileSize、file Last Mod、、、
唯一的缺点就是:未能在IE下通过。
不过,这不是什么缺点,因为我是在手机端的web开发,这里是andriod和IOS的天下。
『捌』 jsp中 input file选择文件 怎么得到文件的路径啊 浏览器是ie8
<script type="text/javascript">
//FX获取文件路径方法
function readFileFirefox(fileBrowser) {
try {
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
}
catch (e) {
alert('无法访问本地文件,由于浏览器安全设置。为了克服这一点,请按照下列步骤操作:(1)在地址栏输入"about:config";(2) 右键点击并选择 New->Boolean; (3) 输入"signed.applets.codebase_principal_support" (不含引号)作为一个新的首选项的名称;(4) 点击OK并试着重新加载文件');
return;
}
var fileName=fileBrowser.value; //这一步就能得到客户端完整路径。下面的是否判断的太复杂,还有下面得到ie的也很复杂。
var file = Components.classes["@mozilla.org/file/local;1"]
.createInstance(Components.interfaces.nsILocalFile);
try {
// Back slashes for windows
file.initWithPath( fileName.replace(/\//g, "\\\\") );
}
catch(e) {
if (e.result!=Components.results.NS_ERROR_FILE_UNRECOGNIZED_PATH) throw e;
alert("File '" + fileName + "' cannot be loaded: relative paths are not allowed. Please provide an absolute path to this file.");
return;
}
if ( file.exists() == false ) {
alert("File '" + fileName + "' not found.");
return;
}
return file.path;
}
//根据不同浏览器获取路径
function getvl(){
//判断浏览器
var Sys = {};
var ua = navigator.userAgent.toLowerCase();
var s;
(s = ua.match(/msie ([\d.]+)/)) ? Sys.ie = s[1] :
(s = ua.match(/firefox\/([\d.]+)/)) ? Sys.firefox = s[1] :
(s = ua.match(/chrome\/([\d.]+)/)) ? Sys.chrome = s[1] :
(s = ua.match(/opera.([\d.]+)/)) ? Sys.opera = s[1] :
(s = ua.match(/version\/([\d.]+).*safari/)) ? Sys.safari = s[1] : 0;
var file_url="";
if(Sys.ie<="6.0"){
//ie5.5,ie6.0
file_url = document.getElementById("file").value;
}else if(Sys.ie>="7.0"){
//ie7,ie8
var file = document.getElementById("file");
file.select();
file_url = document.selection.createRange().text;
}else if(Sys.firefox){
//fx
//file_url = document.getElementById("file").files[0].getAsDataURL();//获取的路径为FF识别的加密字符串
file_url = readFileFirefox(document.getElementById("file"));
}
//alert(file_url);
document.getElementById("text").innerHTML="获取文件域完整路径为:"+file_url;
}
</script>
<h1>JS获取文件域完整路径的方法,兼容不同浏览器</h1>
<div id="text" style="color:#f00;"></div>
<input type="file" id="file" />
<input name="" type="button" value="获取" onClick="getvl();">