在我们的一个 Intranet 页面上,我cffileupload
用来上传多张照片:
<cffileupload extensionfilter=".jpg,.jpeg,.png,.gif"
url="/submissions/photo_gallery.cfm"
onerror="errorissue"
width="600"
addbuttonlabel="Browse..."
maxuploadsize="100">
此标记的 url 指向我处理图像的同一页面:
<!--- Define the upload path --->
<cfset upload_path = "C:\websites\images\photo_gallery\">
<!--- Upload all the files --->
<cffile action="upload"
destination="#upload_path#"
nameconflict="makeunique"
result="uploaded_file">
在 IE 和 Chrome 中,这是可行的。在 Firefox 中,我收到 401 错误。它似乎与浏览器的身份验证方式有关。IE 和 Chrome 使用 Windows 身份验证,而 Firefox 在进入站点时提示输入用户名/密码。Coldfusion 日志中没有显示任何内容,但 IIS 日志显示了这一点(IP x'd):
2013-05-09 19:16:07 xxx.xxx.xxx.xxx POST /submissions/photo_gallery.cfm CFID=5546&CFTOKEN=75080018 80 - 172.28.30.99 Shockwave+Flash 401 2 5 0
日志中的上一行来自加载页面。如您所见,我的用户名显示在这一行中(为安全起见进行了编辑):
2013-05-09 19:16:07 xxx.xxx.xxx.xxx GET /includes/js/shared.js - 80 DOMAIN\username xxx.xxx.xxx.xxx Mozilla/5.0+(Windows+NT+6.1;+ WOW64;+rv:20.0)+壁虎/20100101+火狐/20.0 304 0 0 218
所以,cffileupload 似乎丢失了我的用户名。但是,cffileupload url 中的 session.urltoken 与具有多个文件上传器的页面(调用页面)中的相同。所以,你会认为身份验证会坚持下去。
此外,当我进入 IIS7 并在 Jakarta 虚拟目录上启用匿名身份验证(并在同一位置禁用 Windows 身份验证)时,我可以让它在 Firefox 中工作。但是,这不是一个可用的解决方案。
任何人都可以提出另一种解决方案吗?