javascript路徑上傳文件
Ⅰ 只得到文件路徑怎麼用js上傳
看來是沒人願意回答你這個問題了。我告訴你吧。
瀏覽器是不允許js上傳文件的,如果可以,惡意代碼會掃描電腦把敏感文件都上傳了,以後誰還敢上網?
所以上傳文件只能用<input type="file"/>
至於aspx裡面如何使用,這是你自己的事。學習要學精,用法差別不大。
Ⅱ java或js(可用jquery)如何獲取上傳文件原始路徑名
上傳文件時,我想獲取客戶端上傳文件的原始路徑。第一考慮,當然是使用js,例如網上可以找到的:
function getPath(obj) { if (obj) { if (window.navigator.userAgent.indexOf("MSIE") >= 1) { obj.select(); return document.selection.createRange().text; } else if (window.navigator.userAgent.indexOf("Firefox") >= 1) { if (obj.files) { return obj.files.item(0).getAsDataURL(); } return obj.value; } return obj.value; } } 但這樣的代碼在Ie下還是可行的,但在火狐下不兼容。所以又想通過servlet的第三方工具去做,例如FileUpload,本以為FileItem下的getName()方法能夠得到全路徑名,但結果仍然只得到文件名,很是杯具!求解決方法!?
引用至於你說的,不明白你的意思關鍵問題是我要獲得這個路徑,並且傳遞到後台!用js會有兼容性問題,如果用FileUpload上傳,是否可以獲得呢?我是沒有得到的!!! 問題補充:zhanjia 寫道上傳文件一般用input標簽,type為file,瀏覽選擇文件後就是文件在本地的絕對路徑了
引用至於你說的,不明白你的意思關鍵的問題是我要獲得這個本地路徑,並且傳到後台!用js可以得到,但存在兼容性問題!?如果用FileUpload呢?我暫時還沒有得到!!! 問題補充:zhanjia 寫道網上的一些解決方案:
一般都是上傳以後在資料庫中保存上傳後的文件路徑,本地路徑一般沒意義
除非像上面所說的文件上傳預覽,還有那麼點用處
我用來做數據介面的,我僅僅是把路徑傳給另一個系統,然後那個系統就可以從這個路徑取文件了。
Ⅲ java web項目java後台獲取前台js上傳文件的路徑
如果通過servelet來讀取上傳文件路徑,則代碼如下,我已經在項目中用過了:
DiskFileItemFactorydifif=newDiskFileItemFactory();
difif.setSizeThreshold(32*1024);difif.setRepository(newFile(tmpDir));//
用以上工廠實例化上傳組件ServletFileUploadsfu=newServletFileUpload(difif);
sfu.setSizeMax(MAX_SIZE);
ListfileList=sfu.parseRequest(request);
if(fileList==null||fileList.size()==0){thrownewException("
導入文件不存在,請檢
查");}else{FileupLoadFile=null;IteratorfileIterator=fileList.iterator();
//得到所有上傳的文
件while(fileIterator.hasNext()){FileItemfileItem=(FileItem)fileIterator.next();//
取得上傳文件
名if(fileItem.getContentType()==null){}else{
//
此為路
徑Stringpath=fileItem.getName();Stringt_ext=path.substring(path.lastIndexOf(".")+1);//
根據系統時間生成上傳後保存的文件
名Stringprefix=String.valueOf(System.currentTimeMillis());//
保存最終的文件完整路徑,保存在工程根目錄下的Upload目錄
下Stringu_name=tmpDir+File.separator+prefix+"."+t_ext;//
開始保存文
件upLoadFile=newFile(u_name);fileItem.write(upLoadFile);}}}
Ⅳ 怎麼用js獲取上傳文件的完整路徑
file是一種特殊的input,不能被賦值,也不能被javascript取值,只能隨表單提交,而且隨表單提交的也是file路徑所指向的文件本身。
這是瀏覽器安全原因所限制的,如果可以取值和賦值的話,那麼javascript就可以隨意獲取你電腦上的文件了,這是非常危險的
Ⅳ js怎麼傳遞一個上傳文件的路徑
flex上傳的是文件流,你應該在服務端接到這個位元組流 將其創建成文件對象 並保存在伺服器本地磁碟中獲得路徑返回給前台,如果你們用node js做的伺服器 也是同理 一定有處理流的方法,關鍵是你要理解flex 通過onload載入成功後在成功事件對象中取得的是 這個文件的信息 包括 位元組流啊 寬高啊 名字啊等等。不知道能否讓你理解。
Ⅵ javascript 上傳文件到阿里雲的oss,上傳文件成功後怎麼獲取文件的真實路徑
如果你直接使用 javascript 將阿里雲的accessId、accessKey寫在頁面上是不安全的,你可以使用後台存儲這些敏感的信息,官網有相關的SDK ,你可以選擇你常用的。
在後台編寫你的回調函數,將回調函數憑證信息返回給前端,前端使用回調函數憑證訪問OSS,就可以獲取到回調函數信息。
Ⅶ jsp頁面如何用js獲取上傳文件的真實路徑,不通過修改瀏覽器設置的方式
你應該回去找提供你這段代碼的網頁,看一下getPath函數的參數obj是什麼,輸入參數有什麼要求。
就這段代碼看,obj應該是一個對象,並且這個對象有select()方法;而恰好jQuery對象就有select()方法,有可能(僅僅是有可能)你需要將obj包裝成jQuery對象後,再作為getPath函數的參數代入試試。
提示:
dom對象轉為jQuery對象:有dom元素el,通過$(el)操作就可以轉為jQuery對象
Ⅷ JavaScript文件分片上傳,斷點續傳如何實現
public class FileInf {
public FileInf(){}
public String id="";
public String pid="";
public String pidRoot="";
/** * 表示當前項是否是一個文件夾項。 */
public boolean fdTask=false;
// /// 是否是文件夾中的子文件 /// </summary>
public boolean fdChild=false;
/** * 用戶ID。與第三方系統整合使用。 */
public int uid=0;
/** * 文件在本地電腦中的名稱 */
public String nameLoc="";
/** * 文件在伺服器中的名稱。 */
public String nameSvr="";
/** * 文件在本地電腦中的完整路徑。示例:D:\Soft\QQ2012.exe */
public String pathLoc="";
/** * 文件在伺服器中的完整路徑。示例:F:\\ftp\\uer\\md5.exe */
public String pathSvr="";
/** * 文件在伺服器中的相對路徑。示例:/www/web/upload/md5.exe */
public String pathRel="";
/** * 文件MD5 */
public String md5="";
/** * 數字化的文件長度。以位元組為單位,示例:120125 */
public long lenLoc=0;
/** * 格式化的文件尺寸。示例:10.03MB */
public String sizeLoc="";
/** * 文件續傳位置。 */
public long offset=0;
/** * 已上傳大小。以位元組為單位 */
public long lenSvr=0;
/** * 已上傳百分比。示例:10% */
public String perSvr="0%";
public boolean complete=false;
public Date PostedTime = new Date();
public boolean deleted=false;
/** * 是否已經掃描完畢,提供給大型文件夾使用,大型文件夾上傳完畢後開始掃描。 */
public boolean scaned=false;
}
Ⅸ IE8以上,用js獲取上傳文件大小和絕對路徑的實現代碼
js實現獲取文件大小:
var maxsize = 2*1024*1024;//定義最大為2M。
var errMsg = "上傳的附件文件不能超過2M!";
var tipMsg = "您的瀏覽器暫不支持計算上傳文件的大小,確保上傳文件不要超過2M,建議使用IE、FireFox、Chrome瀏覽器。";
var browserCfg = {};
var ua = window.navigator.userAgent;
if (ua.indexOf("MSIE")>=1){
browserCfg.ie = true;
}else if(ua.indexOf("Firefox")>=1){
browserCfg.firefox = true;
}else if(ua.indexOf("Chrome")>=1){
browserCfg.chrome = true;
}
function checkfile(){
try{
var obj_file = document.getElementById("fileuploade");
if(obj_file.value==""){
alert("請先選擇上傳文件");
return;
}
var filesize = 0;
if(browserCfg.firefox || browserCfg.chrome ){
filesize = obj_file.files[0].size;
}else if(browserCfg.ie){
var obj_img = document.getElementById('tempimg');
obj_img.dynsrc=obj_file.value;
filesize = obj_img.fileSize;
}else{
alert(tipMsg);
return;
}
if(filesize==-1){
alert(tipMsg);
return;
}else if(filesize>maxsize){
alert(errMsg);
return;
}else{
alert("文件大小符合要求");
return;
}
}catch(e){
alert(e);
}
}
js實現獲取絕對路徑:
function readFile(fileBrowser) {
if (navigator.userAgent.indexOf("MSIE") != -1) {
return getFilePath(fileBrowser);
} else if (navigator.userAgent.indexOf("Firefox") != -1 || navigator.userAgent.indexOf("Mozilla") != -1) {
return getFilePathWithFF(fileBrowser);
} else {
return;
}
}
function getFilePath(fileBrowser) {
alert("ie");
alert(fileBrowser.value);
}
function getFilePathWithFF(fileBrowser) {
try {
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
} catch(e) {
alert('由於瀏覽器安全問題 請按照以下設置 [1] 地址欄輸入 "about:config" ; [2] 右鍵 新建 -> 布爾值 ; [3] 輸入 "signed.applets.codebase_principal_support" (忽略引號).');
return;
}
var fileName = fileBrowser.value;
alert("firefox");
alert( fileName);
}