博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JQuery调用WebService,以及JS把单斜杠转换成双斜杠
阅读量:6843 次
发布时间:2019-06-26

本文共 3065 字,大约阅读时间需要 10 分钟。

使用场景如下:

调用WebService文件上传。

首先是全路径问题,ie可以自动获取,但firefox不行,只能得到文件名,没有路径。

于是上网找解决办法:

解决代码如下:

<!
DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
>
<
html 
xmlns
="http://www.w3.org/1999/xhtml"
>
<
head
>
    
<
title
></
title
>
     
<
script 
type
="text/javascript"
 src
="jquery-ui-1.8.14.custom/js/jquery-1.5.1.min.js"
></
script
>
     
<
script 
type
="text/javascript"
>
         
function
 getFullPath(obj) {
             
if
 (obj) {
                 
//
ie
                 
if
 (window.navigator.userAgent.indexOf(
"
MSIE
"
>=
 
1
) {
                     obj.select();
                     
return
 document.selection.createRange().text;
                 }
                 
//
firefox
                 
else
 
if
 (window.navigator.userAgent.indexOf(
"
Firefox
"
>=
 
1
) {
                     
if
 (obj.files) {
                         
return
 obj.files.item(
0
).getAsDataURL();
                     }
                     
return
 obj.value;
                 }
                 
return
 obj.value;
             }
         } 
     
</
script
>
     
     
    
<
script 
type
="text/javascript"
>
        $(
function
() {
            $(
"
#upload
"
).click(
function
() {
                
var
 a 
=
 $(
"
#fileName
"
).val();
                
var
 aa 
=
 getFullPath(document.getElementById(
"
fileName
"
));
                
//
alert(aa);
                
var
 b 
=
 
/
\\
/
gi;
                
var
 c 
=
 a.replace(b, 
"
\\\\
"
);
                $.ajax({
                    type: 
"
POST
"
,
                    
//
contentType: "application/json",
                    url: 
"
WebService.asmx/uploadfile
"
,
                    data: 
"
name=
"
 
+
 c,
                    
//
dataType: 'json',
                    success: 
function
(result) {
                        
var
 d 
=
 $(result).find(
"
string
"
);
                        alert(d.text());
                    },
                    error: 
function
(textStatus, errorThrown) {
                        alert(
"
出错了
"
 
+
 
this
.errorThrown);
                    }
                });
            });
        })
           
        
    
</
script
>
</
head
>
<
body
>
<
div
>
    
<
input 
type
="file"
 id
="fileName"
 value
=""
 
/><
input 
type
="button"
 id
="upload"
 value
="上传"
 
/>
    
</
div
>
</
body
>
</
html
>

webService代码

 

using
 System;
using
 System.Collections.Generic;
using
 System.Linq;
using
 System.Web;
using
 System.Web.Services;
///
 
<summary>
///
WebService 的摘要说明
///
 
</summary>
[WebService(Namespace 
=
 
"
http://tempuri.org/
"
)]
[WebServiceBinding(ConformsTo 
=
 WsiProfiles.BasicProfile1_1)]
//
若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消对下行的注释。 
//
 [System.Web.Script.Services.ScriptService]
public
 
class
 WebService : System.Web.Services.WebService {
    
public
 WebService () {
        
//
如果使用设计的组件,请取消注释以下行 
        
//
InitializeComponent(); 
    }
    [WebMethod]
    
public
 
string
 HelloWorld() {
        
return
 
"
Hello World
"
;
    }
    [WebMethod]
    
public
 
string
 uploadfile(
string
 name)
    {
        
string
 n 
=
 name;
        
return
 n;
    }
    
}

不过,有很多问题:

首先,如果路径名是var  a="c:\1.txt"。经过正则后,结果值是c:1.txt。没有了斜杠。把路径名放在input 的value里面才有效。

 

<!
DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
>
<
html 
xmlns
="http://www.w3.org/1999/xhtml"
>
<
script 
type
="text/javascript"
>
function
 change(){
    
var
 a 
=
 document.getElementById(
"
old
"
).value;
    a 
=
 
"
F:\source code\DsPrn\CPort
"
;
    
var
 mytype 
=
 
typeof
 (a);    
    
var
 b 
=
 
/
\\
/
gi;
    
var
 c 
=
 a.replace(b,
'
\\\\
'
);
    document.getElementById(
"
new
"
).value 
=
 c;
    alert(a);
}
</
script
>
<
body
>
原字符串:
<
input 
id
="old"
 value
="F:\source code\DsPrn\CPort"
 type
="text"
 style
="width:400px;"
/><
br
/>
新字符串:
<
input  
id
="new"
 type
="text"
 style
="width:400px;"
/><
br
/>
 
<
input 
type
="button"
 value
="转换"
 onclick
="change()"
/>
</
body
>
</
html
>

转载于:https://www.cnblogs.com/samwu/archive/2011/07/25/2116270.html

你可能感兴趣的文章
一次防CC***案例
查看>>
我的友情链接
查看>>
Python中子进程Timeout的使用
查看>>
HBase Filter使用方法(一)
查看>>
win32鼠标
查看>>
vsphere 5.5 连接iscsi存储
查看>>
Object-c 中字符串与数组的处理
查看>>
sed命令的用法
查看>>
Linux服务器篇------DNS(2)
查看>>
跟阿铭学习Linux- 第三课 用户和组管理
查看>>
python列表及for循环要注意的知识点
查看>>
日历控件(可以选择年月日小时分秒)
查看>>
Java学习笔记二十一:Java面向对象的三大特性之继承
查看>>
Python os模块常用部分功能总结
查看>>
AIX Paging Space扩容
查看>>
WCF之路起航
查看>>
56张图详细分解Flash CS6中对齐面板的使用
查看>>
思科全球网络安全奖学金计划
查看>>
Extjs4.0.7 treepanel中定义自定义字段
查看>>
参考资料
查看>>