似乎nginx在将请求传递给updstream服务器之前缓冲请求,而对于大多数情况来说它对我来说是好的,这是非常糟糕的:)
我的情况是这样的:
我有nginx作为前端服务器来代理3个不同的服务器:
#3是问题,现在我所拥有的是nginx缓冲所有请求,然后将其发送到文件上传服务器,后者又将其发送到云文件,而不是在获取它时发送每个块(那些使得上传速度更快)我可以将6-7MB/s推送到cloudfiles).
我使用nginx的原因是有3个不同的域和一个IP如果我不能这样做我将不得不将fileupload服务器移动到另一台机器.
我有一个fileupload控件,它位于更新面板中.我希望在上传完成后显示图像.下面是我的HTML代码
<form id="form1" runat="server">
<br />
<asp:ScriptManager ID="ScriptManager1" runat="server" />
<br />
<div>
<br />
<table width="50%" cellpadding="2" cellspacing="0">
<br />
<tr>
<br />
<td>
<br />
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="conditional">
<ContentTemplate>
<br />
<asp:FileUpload ID="FileUpload1" runat="server" /><br />
<asp:Button ID="btnUpload" runat="server" Text="Upload" OnClick="btnUpload_Click" /><br />
</ContentTemplate>
<Triggers> <asp:PostBackTrigger ControlID="btnUpload" /> </Triggers>
</asp:UpdatePanel>
<br />
<asp:Image ID="imgViewFile" runat="server" />
</td>
</tr>
</table>
<br />
</div>
<br />
</form>
Run Code Online (Sandbox Code Playgroud)
以下是我的代码
protected void btnUpload_Click(object sender, EventArgs e)
{
if (FileUpload1.HasFile)
{
FileUpload1.SaveAs(MapPath("~/TEST/" …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用iframe(通过AJAX)提交附加文件的表单.我正在使用rails和remotipart gem.实际上我也尝试过jquery.form.js库,但没有运气.当我提交表单时,我只在IE9中获取"SCRIPT5:访问被拒绝",当我从我的Gmail帐户重定向到该页面时.当我访问我的网站并提交附有文件的表单时,它工作正常,但当我通过gmail的链接(其他电子邮件工作)访问网站时,它不起作用.我检查了它是如何工作的 - 它创建隐藏的iframe设置form.target = iframe.name(iframe的名称)&iframe.src = javascript:false; 提交表单时,抛出异常="SCRIPT5:访问被拒绝".我试图设置iframe.domain =我网站的域但是没有用 - iframe = $(""); 顺便说一下,我正在向同一个域名提交表格
有谁解决了这个问题?
我正在尝试在异步模式下使用Kendo UI Upload(MVC包装器).事情似乎在Chrome中运行良好,但在IE中没有这样的运气(截至目前仅在IE 9中测试过).当它启动上传时,我可以看到它命中我的操作方法,并且请求包含我期望的数据,但实际上没有任何内容被保存.
代码示例如下:
_EditForm.cshtml(上传的位置)
@(Html.Kendo().Upload()
.Name(string.Format("upload{0}", "background"))
.Multiple(true)
.Events(evt => evt.Success("refreshBackgroundImages"))
.Messages(msg => msg.DropFilesHere("drag and drop images from your computer here")
.StatusUploaded("Files have been uploaded"))
.Async(a => a.AutoUpload(true)
.SaveField("files")
.Save("UploadImage", "Packages", new { siteId = Model.WebsiteId, type = "background" })))
Run Code Online (Sandbox Code Playgroud)
控制器ActionMethod
[HttpPost]
public ActionResult UploadImage(IEnumerable<HttpPostedFileBase> files, Guid siteId, string type)
{
var site = _websiteService.GetWebsite(siteId);
var path = Path.Combine(_fileSystem.OutletVirtualPath, site.Outlet.AssetBaseFolder);
if (type == "background")
{
path = Path.Combine(path, _backgroundImageFolder);
}
else if (type == "image")
{
path …Run Code Online (Sandbox Code Playgroud) asp.net-mvc asyncfileupload asp.net-mvc-4 kendo-ui kendo-asp.net-mvc
我正在使用grails创建一个web应用程序,它使用了大量的ajax.我想用ajax实现文件上传.我不知道如何使用ajax进行文件上传.我的示例GSP代码是:
<!-- code for file upload form-->
<div id="updateArea">
</div>
Run Code Online (Sandbox Code Playgroud)
我试过和.上传后我想用结果更新'updateArea'.结果我打算显示上传文件的详细信息.
我正在尝试调试我前段时间建立的异步文件上传器,它不再有效,我花了很多时间没有成功.
服务器正在接收的流总是被破坏,实际上我保存的文件(图像)无法打开.
为了简化调试,我设置了一个全新的ASP.NET项目,包含两个主要文件,带有表单字段的HTML文件和ASP.NET处理程序.
尽管这里的代码非常简单,但我还是运气不好!:(
非常感谢任何帮助,非常感谢!
<!DOCTYPE html>
<html>
<head>
<title>Upload Files using XMLHttpRequest - Minimal</title>
<script type="text/javascript">
function uploadFile() {
var fd = new FormData();
fd.append("fileToUpload", document.getElementById('fileToUpload').files[0]);
var xhr = new XMLHttpRequest();
xhr.addEventListener("load", uploadComplete, false);
xhr.addEventListener("error", uploadFailed, false);
xhr.addEventListener("abort", uploadCanceled, false);
xhr.open("POST", "Handler1.ashx");
xhr.send(fd);
}
function uploadComplete(evt) {
/* This event is raised when the server send back a response */
alert(evt.target.responseText);
}
function uploadFailed(evt) {
alert("There was an error attempting to upload the file.");
}
function uploadCanceled(evt) {
alert("The …Run Code Online (Sandbox Code Playgroud) 是否有可能在没有jQuery或IFrame的情况下提交AJAX表单(所以只是纯JavaScript)?我正在发送一个有效的struts fileUploadAction.动作的代码是否仍然适用于异步提交,或者是否需要添加异步表单提交?
我正在使用struts 1.x,目前我的表单是:
<html:form action="fileUploadAction" method="post" enctype="multipart/form-data">
...form elements...
<html:file property="theFile" />
...other elements...
</html:form>
Run Code Online (Sandbox Code Playgroud)
是否可以提交此表单,从而使用AJAX上传文件?
我AsyncFileUpload在网页上实现了控件.此网页要求上传的文件显示在GridView.
将GridView包含以下栏目:" 文件名 "," 机密 "复选框和" 删除 "按钮来删除上传的文件.
由于AsyncFileUpload回发不执行整页回发,因此我需要OnClientUploadComplete在AsyncFileUpload控件的事件上"强制"回发,以便在上载文件后呈现gridview.
在OnClientUploadCompleteEvent,我用javascript来调用__doPostBack.在这个回发中,我只绑定我的GridView并显示文件信息(我不重新保存文件).
问题:在AsyncFileUpload第一个"部分"回发时,文件已按预期成功上传.在我强制使用的第二个回发中__doPostBack,文件被重新上传.
您可以使用显示上传进度的Google Chrome来验证这一点.行为如下:
- 选择文件后,进度从0%增加到100%并上载文件.
- __doPostBack执行此操作后,您可以再次看到上载进度从0%增加到100%.
如何确保Gridview已正确填充,但文件未上载两次?
我附上了一个包含问题的示例解决方案:https: //www.yousendit.com/download/MzZFc2ZBNDRrYUN4dnc9PQ
我正在尝试使用jQuery提交服务器端处理的完整表单.表单包含各种字段,包括文件上载选项.我正在尝试使用FormData来执行此操作,因为我不关心目前不支持它的浏览器.
我有以下(简化的)jQuery代码:
$("#create_event_form").submit(function(event) {
event.preventDefault();
var formData = new FormData($(this));
$.post(
"create_entity.php",
{ formData: formData },
function(data) {
var response = jQuery.parseJSON(data);
if(response.code == "success") {
alert("Success!");
} else if(response.code == "failure") {
alert(response.err);
}
}
);
});
Run Code Online (Sandbox Code Playgroud)
我的服务器端如下所示:
<?php
require_once('includes/database.php');
$dbh = db_connect();
$response = array();
if($_SERVER['REQUEST_METHOD'] == "POST") {
// do some other stuff...
// upload entity picture and update database
$url = $_FILES['entity_pic']['name'];
if($url != "") {
if($type == "user") {
$pic_loc = "images/profiles/";
} else if($type …Run Code Online (Sandbox Code Playgroud) 我正在为我的公司编写客户端数据库系统.没有太多花哨的东西,但它做到了它应该做的事情.现在所有基本的"文本"内容都已完成,我想在其中添加一些文件管理.
我有几种形式可以使用ajax发送到后端,然后写入模型中的db.
其中一些表格计划上传文档文件.
有没有办法处理正常值提交和使用AJAX提交文件?
我来给你一个表格示例:
<form action="SOMEPATH/LOGIC_FILE.php" action="POST" enctype= multipart/form-data>
<label for="name">
<input type="text" id="name" name="name" />
</label>
<label for="somethingElse">
<input type="text" id="somethingElse" name="somethingElse" />
</label>
<label for="fileUpload">
<input type="file" />
</label>
</form>
Run Code Online (Sandbox Code Playgroud)
AJAX示例:
var name = $('#name').val();
var somethingElse = $('#somethingElse').val();
var dataArr = { 'name':name, 'somethingElse':somethingElse};
MYELEMENT.click(function(e){
e.preventEventDefault();
$.ajax({
url: "PATH/logic/logic_update_client_allg.php",
type: "POST",
data: allgArray,
success: function(dataArr){
// works
},
error: function(){
// doesnt work
}
});
}
Run Code Online (Sandbox Code Playgroud)
这就是我如何处理我的INPUT VALUE提交
如何继续使用此表单上传文件
谢谢
asyncfileupload ×10
ajax ×6
asp.net ×3
c# ×2
file-upload ×2
html5 ×2
javascript ×2
jquery ×2
asp.net-mvc ×1
frameworks ×1
gevent ×1
gmail ×1
grails ×1
gridview ×1
io ×1
kendo-ui ×1
nginx ×1
php ×1
struts ×1
updatepanel ×1