- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
所以我有这个用于将 swfuploader 加载到页面上的 javascript 代码 (http://code.google.com/p/swfupload/)
swfuPubThumbnailUploader = new SWFUpload({
upload_url : "/upload_thumbnail",
flash_url : "/Flash/swfupload.swf",
file_size_limit : 512 + " MB",
file_post_name: 'files[swf]',
file_types : '*.jpg;*.jpeg;*.gif;*.png',
file_types_description: "Image Files",
file_queue_limit : 1,
button_placeholder_id: 'swf-trans-file-selector',
button_text: '',
button_image_url: '',
button_width: "85",
button_height: "25",
button_cursor : SWFUpload.CURSOR.HAND,
button_window_mode : SWFUpload.WINDOW_MODE.TRANSPARENT,
post_params : {
"sid" : sid
},
preserve_relative_urls : true,
file_queued_handler : fileQueued,
file_queue_error_handler : fileQueueError,
file_dialog_complete_handler : fileDialogComplete,
file_dialog_start_handler : sLibraryFileDialogStart,
upload_start_handler : sLibraryPubUploadStart,
upload_progress_handler : sLibraryPubUploadProgress,
upload_error_handler : sLibraryPubUploadError,
upload_success_handler : sLibraryPubUploadSuccess,
upload_complete_handler : sLibraryPubUploadComplete,
queue_complete_handler : queueComplete, // Queue plugin event
custom_settings: {
progressTarget : ("fsPPUploadProgress")
}
});
但是每当我使用 swfuploader 上传(上传图片,更具体地说......)时,swfuploader 会提示 302 错误,这表明 url 正在重定向......但是当我访问上传 url '/upload_thumbnail ' 没有发生重定向并且上传 url 加载正常...所以我检查了 fiddler 来检查这两种情况,这是每种情况的请求
当我通过浏览器访问/upload_thumbnail 时:
GET /upload_thumbnail HTTP/1.1
Host: my.domain.com
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:12.0) Gecko/20100101 Firefox/12.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip, deflate
Connection: keep-alive
Cookie: __utma=171146939.260757561.1311084520.1336078159.1336400574.117; __utmz=171146939.1311084520.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); __utma=104299925.1228643063.1313075490.1335542105.1335567483.41; __utmz=104299925.1333981938.38.25.utmcsr=my.domain.com:8090|utmccn=(referral)|utmcmd=referral|utmcct=/browse/MD-2760; __qca=P0-29539114-1325619242917; SESS5ccc5f20cb72179af2f569e77eaa49da=6vde0rln7q3384k5lcvedsgfh3; SimpleSAMLAuthToken=_c2f653a6e9b18b10439d73849fb1142a7d43851998; __utmc=171146939; has_js=1
If-Modified-Since: Mon, 07 May 2012 19:13:38 +0000
If-None-Match: "1336418018"
加载状态为 200 时正常
然后是来自swfuploader的那个
POST /upload_thumbnail HTTP/1.1
Accept: text/*
Content-Type: multipart/form-data; boundary=----------gL6Ef1Ef1KM7Ij5gL6ae0gL6GI3GI3
User-Agent: Shockwave Flash
Host: my.domain.com
Content-Length: 847357
Connection: Keep-Alive
Pragma: no-cache
Cookie: __utma=171146939.1934231828.1323362429.1328283903.1333582993.5; __utmz=171146939.1323362429.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); __utma=104299925.1653270920.1323362234.1334760245.1335992862.7; __utmz=104299925.1323362234.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); SESS5ccc5f20cb72179af2f569e77eaa49da=0qjn1gva2rhlcqiqp2g7liumd0; __qca=P0-1855943596-1327334275533
最终状态为 302 并重定向到登录页面....
所以我发现罪魁祸首是 Cookie:请求....如果我将浏览器的 COOKIE 请求切换到 swfuploader 的 Cookie 请求,swfuploader 请求将正确加载状态 200...
我的第一个问题是......为什么? swfuploader 的 Cookie 请求有什么问题?
其次,如何将其转换为最顶层的 javascript SWFUpload 代码,以便浏览器中的实际 swfuploader 能够适当修复其 Cookie 请求....
最佳答案
默认的 PHP session 处理程序机制使用您的Cookie 和您的用户代理 将 session 与用户匹配。由于 Flash 使用 “ShockWave Flash” 的用户代理向服务器标识自己,这与浏览器的 UA 不同,因此 php 会为请求分配一个新 session 。
如果您输出 _POST
数据,然后将这些值与您在 session_start()
之后获得的值进行比较,或者如果您将浏览器 UA 更改为完全匹配,则可以检查此项由 Flash 发送。
解决方案?
以任何你想要的方式将 session ID 传递给服务器,默认为 _POST
,并使用正确的 ID 初始化 session 。
SWFUpload 为您提供了“defines the name/value pairs that will be posted with each uploaded file”的post_params
。
// SWFUpload example - taken from you own config file
post_params : {
"sid" : sid => THIS WOULD BE YOUR SESSION ID!; you can put <?=session_id()?>
},
然后在服务器端...
// Prior to starting the session as you normally do you'll want to check if
// you're trying to pass a session id by post, if so, initialize session with it
<?php
if(isset($_POST['sid']))
{
session_id($_POST["sid"]);
}
session_start();
关于javascript - swfupload 302错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10488110/
最近自己做项目的时候需要添加一个功能,上传用户的图片,上传用户图片其实涉及到很多东西,不只是一个html标签<input id="File1" type="fil
我正在考虑在我的网站上使用 SWFUpload,但我看到最后一个版本是在 2010 年 3 月,而且是测试版。看起来 SWFUpload 的人在那里停止了开发。 这个项目还活着吗?有替代方案吗? 最佳
我正在尝试在我的网站上使用 swfupload,并严格按照所有说明进行操作。现在,当我选择一个文件时,我所看到的只是待处理..它永远不会再进一步了。这是我的实现 var swfu = ne
我已经看到其他人如何捕获从他们的 uploader 后端返回的数据。 (参见:How do i get swfupload to return image URL after upload?)但是我一
function uploadStart() { swfu.addPostParam("PHPSESSID", ""); swfu.addPostParam("phot
我迷路了。我正在尝试设置一个简单的文件上传,由 SWFUpload 处理。选择文件后没有任何反应。我没有看到发送的请求,我的控制台中也没有任何内容。 swf 对象是否应该立即调用我的 upload_u
除了上传部分,我下面的代码有效。到目前为止,我能够毫无问题地加载脚本,并且当用户单击上传按钮时文件对话框打开。 但是,我要做的是将文件分配给包含其他文本输入和文本区域元素的表单。 基本上我正在尝试这样
所以我有这个用于将 swfuploader 加载到页面上的 javascript 代码 (http://code.google.com/p/swfupload/) swfuPubThumbnailUp
我正在使用经典表单演示。链接为:link text 如果您尝试演示并尝试上传文件,您可以看到,一旦单击“提交申请”按钮,取消(十字图像)按钮不会出现在蓝色的右上角框(指示进度)。如何操作现有代码以便能
我已经加载了 SWFUpload Javascript(确认加载的所有文件的位置都是正确的),并且添加了加载基本 SWFUploader 的代码,但问题是,我没有看到任何按钮。我什么也没看到。下面的代
我有 $('#just').hide() SWFUpload 的按钮包含 div,实际上传立即停止。 这是什么原因呢?调试没有说什么。 更新:有趣的是,在 IE7 中它不会停止。 最佳答案 我遇到了完
我想更改悬停在 swfupload 按钮中的文本颜色。 颜色属性我把它放在'button_text_style'属性中,但是这个小部件似乎没有任何设置悬停属性的属性。 var settings = {
我开发了一个系统,该系统使用 SWFUpload 轻松允许用户上传多个文件,并使用进度条显示上传进度。在我的开发环境中一切正常,但对于某些用户来说,Flash 电影未加载时会失败。我可以看到 Flas
http://demo.swfupload.org/v250beta2/simpledemo/index.php似乎不再在 IE 中工作了。有没有办法解决这个问题? 我得到了一个红十字,并且“按钮”不
我们有两个网络服务器,我们已经在这两个服务器之间专门处理任务。我们已经决定将所有的 asp/aspx 页面放到一台服务器上,并将 upload.aspx + sql 服务器放到另一台服务器上: 这是服
有人找到解决这个问题的方法了吗?我有一个项目,客户希望 Flash 按钮中嵌入一个进度条。到目前为止,我通过隐藏 CSS 的 Div 来做到这一点,然后在文件开始上传后显示。 按钮随后被隐藏,但是当按
我已经下载了 SWFUpload,希望创建通过我的网站上传大文件的功能。 我找到了这个指南:http://webdeveloperplus.com/jquery/multiple-file-uploa
不确定是否有太多人熟悉 SWFUpload。这是一个基于 flash/js/php 的上传脚本。我的主要问题是我在 php 方面相当流利,我可以在其中创建一个简单的 mail() 脚本,但是,对于各种
在用户选择文件后,我是否可以立即从 swfupload 获取排队的所有文件的总大小?当上传即将开始时,我需要能够显示“0 of 184MB”之类的内容。 谢谢! 最佳答案 我最终只显示每个文件的进度(
我有基于每个文件的 SWFUpload 进度条,但我想要整个队列的进度条,以便您可以看到总体进度。这可能吗? 最佳答案 转到 handlers.js 文件并声明两个全局变量。这只是开始的想法。您需要添
我是一名优秀的程序员,十分优秀!