问题列表 - 第49567页

ASP.NET MVC.如何创建接受和multipart/form-data的Action方法

我有一个Controller方法需要接受multipart/form-data客户端作为POST请求发送.表单数据有2个部分.一个是序列化的对象application/json,另一个是发送的照片文件application/octet-stream.我的控制器上有一个方法,如下所示:

[AcceptVerbs(HttpVerbs.Post)]
void ActionResult Photos(PostItem post)
{
}
Run Code Online (Sandbox Code Playgroud)

我可以在这里Request.File没有问题地获取文件.但是PostItem为null.不知道为什么?有任何想法吗

控制器代码:

/// <summary>
/// FeedsController
/// </summary>
public class FeedsController : FeedsBaseController
{
    [AcceptVerbs(HttpVerbs.Post)]
    public ActionResult Photos(FeedItem feedItem)
    {
        //Here the feedItem is always null. However Request.Files[0] gives me the file I need  
        var processor = new ActivityFeedsProcessor();
        processor.ProcessFeed(feedItem, Request.Files[0]);

        SetResponseCode(System.Net.HttpStatusCode.OK);
        return new EmptyResult();
    }
Run Code Online (Sandbox Code Playgroud)

}

电线上的客户端请求如下所示:

{User Agent stuff}
Content-Type: multipart/form-data; boundary=8cdb3c15d07d36a

--8cdb3c15d07d36a
Content-Disposition: form-data; name="feedItem"
Content-Type: text/xml

{"UserId":1234567,"GroupId":123456,"PostType":"photos",
    "PublishTo":"store","CreatedTime":"2011-03-19 03:22:39Z"}

--8cdb3c15d07d36a …
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc multipartform-data

9
推荐指数
1
解决办法
2万
查看次数

WordPress回显数组

我有以下代码行:$terms = get_the_terms( $the_post->ID, 'posts_tags' ); echo $terms;想法是以标签的格式回显数组,但它只返回单词Array?

我该怎么做呢?标签应如下所示:'tag1,tag2,tag3'

php wordpress

4
推荐指数
2
解决办法
2万
查看次数

ajax加载后再次运行jQuery ready块?

我不确定我是否在这里问正确的问题,但基本上我正在插入带有ajax请求的html:

// data-active_chart
if ($("#charts").attr("data-active_chart") == "barchart") {
  $.ajax({
    url: $("#charts").attr("data-path") + "/barchart",
    success: function(data) {
      $('#charts').html(data);
      console.log('Load was performed.');
    }
  });
}
Run Code Online (Sandbox Code Playgroud)

我的HTML是这样的:

<div id="charts" data-active_chart="barchart" data-path="http://example.com/something">

</div>
Run Code Online (Sandbox Code Playgroud)

但关键是我需要jQuery来了解更新的DOM,比如我需要我的工具提示等工作在插入的HTML中,以及插入HTML中的一堆其他东西都需要响应JS,我该如何以最佳实践方式做到这一点?

javascript jquery

2
推荐指数
1
解决办法
2440
查看次数

模式涉及美元符号($)时正则表达式失败

在匹配涉及美元符号的子模式时,我遇到了一些问题.例如,考虑以下文本块:

Regular Price: $20.50       Final Price: $15.20
Regular Price: $18.99       Final Price: $2.25
Regular Price: $11.22       Final Price: $33.44
Regular Price: $55.66       Final Price: $77.88
Run Code Online (Sandbox Code Playgroud)

我试图将常规/最终价格集与以下正则表达式匹配,但它根本不起作用(根本没有匹配):
preg_match_all("/Regular Price: \$(\d+\.\d{2}).*Final Price: \$(\d+\.\d{2})/U", $data, $matches);

我逃过了美元符号,所以给出了什么?

php regex

20
推荐指数
2
解决办法
4万
查看次数

4G/LTE上的Android HttpClient OOM(HTC Thunderbolt)

当我尝试在Verizon的4G/LTE上使用我的应用程序时,我收到了一些崩溃用户的报告.

查看堆栈跟踪,看起来Android的HttpClient.execute()实现正在抛出一个OOM.这仅发生在4G/LTE设备上,特别是HTC Thunderbolt,并且仅在4G/LTE上.WiFi,3G,UMTS都可以.也适用于Sprint的WiMax 4G工作正常.

两个问题:

  • 什么是引起Android开发者注意的最佳方式?除了在http://code.google.com/p/android/issues上报告之外,还有哪些更好的选择?

  • 关于如何解决这个问题的任何想法?我自己没有4G设备,我无法在模拟器中实现这一点,所以我需要在这里做一些有根据的猜测.我可以尝试在我的代码中捕获OOM并尝试清理并强制GC,但我不确定这是不是一个好主意.评论或其他建议?

这是我的代码正在做的事情:

    HttpParams params = this.getHttpParams(); // returns params
    ClientConnectionManager cm = new ThreadSafeClientConnManager(params, this.getHttpSchemeRegistry() );
    DefaultHttpClient httpClient = new DefaultHttpClient( cm, params );

    HttpResponse response = null;
    request = new HttpGet( url );

    try {

        response = httpClient.execute(request); // <-- OOM on 4G/LTE. OK otherwise
        int statusCode = response.getStatusLine().getStatusCode();
        Log.i("fetcher", "execute returned, http status " + statusCode );

    ...
Run Code Online (Sandbox Code Playgroud)

这是崩溃的堆栈跟踪:

E/dalvikvm-heap(11639):2055696字节分配的内存不足.I/dalvikvm(11639):"Thread-16"prio = 5 tid = 9 RUNNABLE I/dalvikvm(11639):| group ="main"sCount = …

android httpclient htc-thunderbolt 4g htc-android

21
推荐指数
1
解决办法
4640
查看次数

如何选择标准的Android菜单图标?

我想根据手机运行的当前Android版本选择标准的Android菜单图标.

示例图标:

在此输入图像描述

记得!我不想为此目的绘制drawable,我确实想要基于设备API的正确图标.

这可能吗?

android

4
推荐指数
1
解决办法
8016
查看次数

ASP.NET中的无缝部署(IIS在新工作进程准备好之前杀死工作进程)

我正在尝试将.NET Web应用程序部署到IIS(7.5),而不会给用户带来任何麻烦.我确保禁用重叠回收是错误的,但我每次都遇到同样的问题.

每次我为站点上传新的二进制文件时,IIS都会在启动新进程之前终止该进程.所以每次上传新的二进制文件时,用户都会收到以下错误消息:

'/'应用程序中的服务器错误.无法加载文件或程序集"MyApplicationWeb"或其依赖项之一.该进程无法访问该文件,因为该文件正由另一个进程使用.(HRESULT异常:0x80070020)

我不知道如何无缝地做到这一点.现在我只是上传二进制文件; 但是当上传发生时(或本地副本),它将给出上述引用的行为.我也尝试使用Web园,但结果相同.

我不想要的:

  • 如何使用外部负载平衡器来解决这个问题(这是一个功能性的解决方案,但对于少数服务器而言,这是一个糟糕的解决方案,如果只有一台服务器,它将无法工作)
  • 如何在自定义错误页面中创建一个带有刷新的hack-around(因为它有一些明显的问题,但更重要的是它根本不适用于web服务/ ajax).

我认为这应该是可行的,因为http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/24e3c22e-79a9-4f07-a407-dbd0e7f35432.mspx?mfr=true

更新:在上面的文章中他们说:

但是,由于关闭或启动的关闭超时值是可配置的,因此如果工作进程在时间限制内未完成为现有请求提供服务,则它仍可在服务请求时终止.

我不知道在哪里可以找到这个值,也不知道它是什么默认值.如果它少于几秒钟就可以解释我的结果.

PS.我发布它是在SO而不是SF /网站管理员等,因为我认为这种知识可能在那些不积极参与开发的人中很少,我希望这是可以的.

asp.net deployment iis worker-process

13
推荐指数
1
解决办法
4743
查看次数

使用python中的套接字建立IPv6连接

我试图运行这个非常基本的套接字示例:

import socket
host = 'ipv6hostnamegoeshere'
port=9091

ourSocket = socket.socket(socket.AF_INET6, socket.SOCK_STREAM, 0)
ourSocket.connect((host, port))
Run Code Online (Sandbox Code Playgroud)

然而,我得到错误:

    ourSocket.connect((host, port))
  File "<string>", line 1, in connect
socket.error: [Errno 22] Invalid argument
Run Code Online (Sandbox Code Playgroud)

布尔值has_ipv6返回true.有帮助吗?

python sockets networking ipv6

8
推荐指数
1
解决办法
2万
查看次数

VBA圆形功能

在我的一个程序中,我需要计算一系列数字的平均值.问题是,有时答案会出现一个巨大的小数,我需要尝试将其降低到最大两位小数.

我见过一些叫做的东西Excel.WorksheetFunction.Round(...)但据我所知它只适用于特定的数字或特定的细胞.我想知道是否有人知道如何实现这一点,以便它将在一系列单元格中舍入所有小数.

Excel.WorksheetFunction.Round(ActiveSheet.Range(g_first_Function_Col & "2:" & g_first_Function & g_totalRow).Select, 2)
Run Code Online (Sandbox Code Playgroud)

上面的代码试图在一系列单元格上使用round函数.g_first_Function_Col是一些列(如列"H"),g_totalRow是其中包含任何值的最后一行.当我尝试运行这段代码时,它告诉我"="预期.基本上我正在尝试选择整个列并将其四舍五入.

谢谢,

杰西斯莫瑟蒙

excel vba rounding

8
推荐指数
1
解决办法
2万
查看次数

为什么.NET程序能够在损坏的堆栈中存活?(当使用错误的调用约定时)

在VS2010中,如果使用错误的调用约定调用函数,则托管调试助手将为您提供pInvokeStackImbalance异常(pInvokeStackImbalance MDA),这通常是因为在调用C库时未指定CallingConvention = Cdecl.比如你写的

[DllImport("some_c_lib.dll")]
static extern void my_c_function(int arg1, int arg2);
Run Code Online (Sandbox Code Playgroud)

代替

[DllImport("some_c_lib.dll", CallingConvention=CallingConvention.Cdecl)]
static extern void my_c_function(int arg1, int arg2);
Run Code Online (Sandbox Code Playgroud)

因此获得了StdCall调用约定而不是Cdelc.

如果你回答这个问题,你已经知道了这个差异,但是对于这个线程的其他访问者:StdCall意味着被调用者清除堆栈中的参数,而Cdecl意味着调用者清理堆栈.

因此,如果您的C代码中的调用约定错误,则您的堆栈不会被清理并且程序崩溃.

但是,即使.NET程序使用StdCall进行Cdecl功能,.NET程序似乎也不会崩溃.默认情况下,VS2008上没有启用堆栈不平衡检查,因此一些VS2008项目使用了他们的作者不知道的错误调用约定.我刚尝试过GnuMpDotNet,即使缺少Cdelc声明,样本运行也很好.X-MPIR也是如此.

它们都在调试模式下抛出pInvokeStackImbalance MDA异常,但在发布模式下不会崩溃.为什么是这样?.NET VM是否将所有对本机代码的调用包装起来并在之后恢复堆栈本身?如果是这样,为什么还要使用CallingConvention属性呢?

.net pinvoke dllimport

8
推荐指数
1
解决办法
1133
查看次数