js獲取上傳文件的完整路徑(js獲取文件絕對路徑)

本文目錄一覽:

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()方法能夠得到全路徑名,但結果仍然只得到文件名,很是杯具!求解決方法!?引用input type=”file” name=”file” /至於你說的,不明白你的意思關鍵問題是我要獲得這個路徑,並且傳遞到後台!用js會有兼容性問題,如果用FileUpload上傳,是否可以獲得呢?我是沒有得到的!!! 問題補充:zhanjia 寫道上傳文件一般用input標籤,type為file,瀏覽選擇文件後就是文件在本地的絕對路徑了引用input type=”file” name=”file” /至於你說的,不明白你的意思關鍵的問題是我要獲得這個本地路徑,並且傳到後台!用js可以得到,但存在兼容性問題!?如果用FileUpload呢?我暫時還沒有得到!!! 問題補充:zhanjia 寫道網上的一些解決方案:一般都是上傳以後在數據庫中保存上傳後的文件路徑,本地路徑一般沒意義除非像上面所說的文件上傳預覽,還有那麼點用處我用來做數據接口的,我僅僅是把路徑傳給另一個系統,然後那個系統就可以從這個路徑取文件了。如果先上傳一次,再給對方,這樣不但影響上傳速度,而且會產生大量的垃圾文件。

javascript 中怎樣獲取file里的完整路徑,如:D:\E\1.jpg

像這樣的文章很多,隨便找了一個你看看

獲取文件目錄路徑的JavaScript代碼

很多時候我們都需要在js文件中獲取該文件的詳細路徑,以便根據其他文件與該js的相對位置計算並設置其他一些文件如圖片或樣式或腳本的目錄路徑。我們一般都這樣做:

假設外部js文件的文件名為:test.js,則在test.js中都這樣寫:

var js=document.scripts;

var jsPath;

for(var i=0;ijs.length;i++){

if(js[i].src.indexOf(“test.js”)-1){

jsPath=js[i].src.substring(0,js[i].src.lastIndexOf(“/”)+1);

}

}

alert(jsPath);

或者為了提高效率,這樣寫

var js=document.scripts;

var jsPath;

for(var i=js.length;i0;i–){

if(js[i-1].src.indexOf(“test.js”)-1){

jsPath=js[i-1].src.substring(0,js[i-1].src.lastIndexOf(“/”)+1);

}

}

alert(jsPath);

這種思路很清晰,根據文件名獲取引用的文件的src屬性並進行判斷截取即可。

但這種辦法有以下兩個缺點:

1、需要遍歷頁面的js文件,有時可能效率會比較低。

2、如果頁面中出現目錄不同的重名的js文件則可能判斷錯誤。

其實我們可以有更簡單的辦法來準確獲取路徑,這是在一次js測試突然發現並幡然醒悟的。

var js=document.scripts;

js=js[js.length-1].src.substring(0,js[js.length-1].src.lastIndexOf(“/”)+1);

alert(js);

直接使用js.length?這會正確嗎?

其實仔細想想,由於判斷路徑的js代碼一般都直接放在js文件中而不是函數中,所以當加載該js文件時會立即執行其中的語句,而執行此語句時所獲取到的js文件數目正好是js.length-1,因為頁面後面的js文件還沒有加載,所以該處的js文件獲取的數目並不是頁面所有的js文件的數目。這樣一來,獲取路徑就無需再遍歷了,而且文件判斷也無需文件名,判斷更加準確(js.length-1永遠都是其文件本身)。

獲取windows系統臨時目錄

script

var fso = new ActiveXObject(“Scripting.FileSystemObject”);

var f = fso.GetSpecialFolder(2);

alert(f);

/script

jsp頁面如何用js獲取上傳文件的真實路徑,不通過修改瀏覽器設置的方式

你應該回去找提供你這段代碼的網頁,看一下getPath函數的參數obj是什麼,輸入參數有什麼要求。

就這段代碼看,obj應該是一個對象,並且這個對象有select()方法;而恰好jQuery對象就有select()方法,有可能(僅僅是有可能)你需要將obj包裝成jQuery對象後,再作為getPath函數的參數代入試試。

提示:

dom對象轉為jQuery對象:有dom元素el,通過$(el)操作就可以轉為jQuery對象

js彈出窗口 + 獲取上傳文件全路徑。想點擊“導入”可以能彈出這個文本框,回復給具體的代碼,給採納

本文的地址是:

script language=javascript

function MM_findObj(n, d) { //v4.0

var p,i,x; if(!d) d=document; if((p=n.indexOf(“?”))0parent.frames.length) {

d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}

if(!(x=d[n])d.all) x=d.all[n]; for (i=0;!xid.forms.length;i++) x=d.forms[i][n];

for(i=0;!xd.layersid.layers.length;i++) x=MM_findObj(n,d.layers[i].document);

if(!x document.getElementById) x=document.getElementById(n); return x;

}

function JM_cc(ob){

var obj=MM_findObj(ob); if (obj) {

obj.select();js=obj.createTextRange();js.execCommand(“Copy”);}

alert(” 恭喜您!複製成功!\n\n 已經把該頁網址複製到系統剪貼板 \n\n 您可以使用(ctrl+v或鼠標右鍵)粘貼功能 \n\n 通過qq、msn或其他軟件發送給您的朋友或記錄下來。”);

}

document.write(‘input name=”page_url” value=”‘+window.location.href+'” size=”38″ input type=”button” name=”button” style=color:red value=”複製本頁網址發給好友” onclick=JM_cc(“page_url”)’);

/script

js如何獲取file控件的完整路徑

代碼如下:

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

h1JS獲取文件域完整路徑的方法,兼容不同瀏覽器/h1

div id=”text” style=”color:#f00;”/div

input type=”file” id=”file” /

input name=”” type=”button” value=”獲取” onClick=”getvl();”

怎麼用js獲取上傳文件的完整路徑

file是一種特殊的input,不能被賦值,也不能被javascript取值,只能隨表單提交,而且隨表單提交的也是file路徑所指向的文件本身。

這是瀏覽器安全原因所限制的,如果可以取值和賦值的話,那麼javascript就可以隨意獲取你電腦上的文件了,這是非常危險的

原創文章,作者:H059F,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/130725.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
H059F的頭像H059F
上一篇 2024-10-03 23:29
下一篇 2024-10-03 23:29

相關推薦

  • 如何查看Anaconda中Python路徑

    對Anaconda中Python路徑即conda環境的查看進行詳細的闡述。 一、使用命令行查看 1、在Windows系統中,可以使用命令提示符(cmd)或者Anaconda Pro…

    編程 2025-04-29
  • 如何在Java中拼接OBJ格式的文件並生成完整的圖像

    OBJ格式是一種用於表示3D對象的標準格式,通常由一組頂點、面和紋理映射坐標組成。在本文中,我們將討論如何將多個OBJ文件拼接在一起,生成一個完整的3D模型。 一、讀取OBJ文件 …

    編程 2025-04-29
  • 打造照片漫畫生成器的完整指南

    本文將分享如何使用Python編寫一個簡單的照片漫畫生成器,本文所提到的所有代碼和技術都適用於初學者。 一、環境準備 在開始編寫代碼之前,我們需要準備一些必要的環境。 首先,需要安…

    編程 2025-04-29
  • Python中文版下載官網的完整指南

    Python是一種廣泛使用的編程語言,具有簡潔、易讀易寫等特點。Python中文版下載官網是Python學習和使用過程中的重要資源,本文將從多個方面對Python中文版下載官網進行…

    編程 2025-04-29
  • 服務器安裝Python的完整指南

    本文將為您提供服務器安裝Python的完整指南。無論您是一位新手還是經驗豐富的開發者,您都可以通過本文輕鬆地完成Python的安裝過程。以下是本文的具體內容: 一、下載Python…

    編程 2025-04-29
  • 微信小程序和Python數據交互完整指南

    本篇文章將從多個方面介紹如何在微信小程序中實現與Python的數據交互。通過本文的學習,您將掌握如何將微信小程序與後台Python代碼結合起來,實現更豐富的功能。 一、概述 微信小…

    編程 2025-04-29
  • 使用Snare服務收集日誌:完整教程

    本教程將介紹如何使用Snare服務收集Windows服務器上的日誌,並將其發送到遠程服務器進行集中管理。 一、安裝和配置Snare 1、下載Snare安裝程序並安裝。 https:…

    編程 2025-04-29
  • Python文件路徑賦值

    Python中文件操作是非常基本的操作,而文件路徑是文件操作的前提。本文將從多個方面闡述如何在Python中賦值文件路徑。 一、絕對路徑和相對路徑 在Python中,路徑可以分為絕…

    編程 2025-04-28
  • 使用Python圖書館搶座腳本的完整步驟

    本文將從多個方面詳細介紹如何使用Python編寫圖書館的座位搶佔腳本,並幫助您快速了解如何自動搶佔圖書館的座位,並實現您的學習計劃。 一、開發環境搭建 首先,我們需要安裝Pytho…

    編程 2025-04-28
  • Python Flask系列完整示例

    Flask是一個Python Web框架,在Python社區中非常流行。在本文中,我們將深入探討一些常見的Flask功能和技巧,包括路由、模板、表單、數據庫和部署。 一、路由 Fl…

    編程 2025-04-28

發表回復

登錄後才能評論