小编Rom*_*man的帖子

MVC.HttpPostedFileBase始终为null

我需要一些帮助.我正在尝试使用上传文件<input type="file">.这是我的观点:

@using (Html.BeginForm("BookAdd", "Admin", FormMethod.Post, new { enctype = "multipart/form-data" }))
{
    <input type="file" name="files[0]" id="files[0]" />
    <input type="file" name="files[1]" id="files[1]" />
    <input type="submit" value="Upload Book" />
}
Run Code Online (Sandbox Code Playgroud)

这是一个应该处理上传文件的Action.

[HttpPost]
public ActionResult BookAdd(IEnumerable<HttpPostedFileBase> files)
{
    // some actions
    return View();
}
Run Code Online (Sandbox Code Playgroud)

问题是"文件"总是包含两个空元素.可以做些什么来解决它?

是时候发布一些新闻了.好像我发现了问题,但我仍然不知道如何修复它.看来,尽管我在这里使用"multipart/form-data":

@using (Html.BeginForm("BookAdd", "Admin", FormMethod.Post, new { enctype="multipart/form-data" }))
{
    <input type="file" name="File" id="file1" />
    <input type="file" name="File" id="file2" />
    <input type="submit" value="Upload Book" />
}
Run Code Online (Sandbox Code Playgroud)

Request.ContentType 在控制器中仍然是"application/x-www-forum-urlencoded"

asp.net-mvc-3

31
推荐指数
3
解决办法
5万
查看次数

将opencv处理添加到gstreamer应用程序

我正在尝试执行以下操作:使用gstreamer接收视频流并使用opencv进行处理.我找到了一些解决方案,其中一个是将视频写入(来自gstreamer)fifo,然后使用opencv读取它.(OPTION3这里是MJPEG流媒体和解码).问题是我无法打开管道.cvCreateFileCapture永远不会返回.这是我写的部分代码:

if(mkfifo("fifo.avi", S_IRUSR| S_IWUSR) == -1)
{
    cout<<"Cant create fifo"<<endl;
    cout<<errno<<endl;
}

loop = g_main_loop_new(NULL, false);

fsink = gst_element_factory_make("filesink", "fsink");
g_object_set(G_OBJECT(fsink), "location", "fifo.avi", NULL);

playbin = gst_element_factory_make("playbin2", "play");    
g_object_set(G_OBJECT(playbin), "uri", uri.c_str(), NULL);
g_object_set(G_OBJECT(playbin), "video-sink", fsink, NULL);

bus = gst_pipeline_get_bus(GST_PIPELINE(playbin));
gst_bus_add_signal_watch(bus);

g_signal_connect(bus, "message::buffering", G_CALLBACK(&set_playbin_state), playbin);
gst_object_unref(bus);

cvNamedWindow("output", CV_WINDOW_AUTOSIZE);
capture = cvCreateFileCapture("fifo.avi");
Run Code Online (Sandbox Code Playgroud)

程序堆叠在最后一行.PS:我正在使用opencv 2.3.1.

c c++ opencv fifo gstreamer

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

uml中的模板方法

有没有办法在 UML 中显示模板方法(我的意思是 C++ 模板方法,而不是模式)?我只找到了模板类。

假设我有

class A {
  public:
    template <typename T>
    std::vector<T> func(T& var);
};
Run Code Online (Sandbox Code Playgroud)

所以,我现在可以在 uml 中显示它的唯一方法是+func(in var : T&) : std::vector<T>. 有什么办法可以说它是模板,而 T 不是通常的类型吗?

c++ oop uml

6
推荐指数
1
解决办法
7881
查看次数

负前瞻后跟空格

我无法弄清楚反向否定查找。假设我有一个文本

qwe  abc
qwe abc
abc
Run Code Online (Sandbox Code Playgroud)

我想找到所有abc没有在后面的qwe,后面可能有任意数量的空格。

(?<!qwe)\s*?(abc)
Run Code Online (Sandbox Code Playgroud)

匹配一切。我认为它类似于“匹配任意数量的空格,abc如果qwe前面没有空格”

我也试过

qwe|(abs) 
Run Code Online (Sandbox Code Playgroud)

方法,但它对我不起作用。尽管对于我不希望 match 起作用的情况,组是空的,但我真的不知道如何将它与re.sub函数(需要)一起使用。即使组为空,也会re.sub替换字符串。

环境:python 3

python regex python-3.x

6
推荐指数
1
解决办法
122
查看次数

通过recvfrom(UDP)接收一部分数据包

我正试图通过recvfrom接收一部分数据包.它实际上是这样的:

recvfrom(sockfd, serialised_meta, 12, flags, src_addr, addrlen);
recvfrom(sockfd, serialised_buf, BUFLEN, flags, src_addr, addrlen);
Run Code Online (Sandbox Code Playgroud)

数据发送方式如下:

 bufd->Serialise(serialised_buf, BUFLEN+12);
 sendto(sockfd, serialised_buf, BUFLEN+12, flags, dest_addr, addrlen);
Run Code Online (Sandbox Code Playgroud)

因此,我们的想法是先读取一些元数据,然后决定是否接收其他内容.问题是如果第二个缓冲区(serialised_buf),我在开始时收到4'/ 0'字节.它似乎不是序列化问题,我以前使用过序列化,而且一切都很酷,而我一次收到整个数据包(元数据和数据).关于如何修复它的任何想法?

PS.我知道我可以跳过不必要的字节)但无论如何,为什么它可能会发生?

c c++ sockets linux udp

5
推荐指数
1
解决办法
5951
查看次数

ROS图像主题帧率极低

我试图通过ROS api用opencv处理VREP视觉传感器输出.我确实设法设置场景并让脚本运行,但问题是即使没有实际处理我也有点像4-5 fps(目前我只是将图像直接推送到输出).

此问题似乎不依赖于图像分辨率,因为1024*512和128*128捕获都会产生完全相同的fps.

这也不是阻塞调用的问题,虽然我发布单线程代码,但我确实有相当复杂的多线程处理管道,它与实际相机(~50 fps)表现相当好.

VREP方面的Lua脚本似乎也不是问题,因为我尝试使用vrep提供的视频重传示例,并且它们似乎达到了相当令人满意的fps.

所以看起来图像流是一个瓶颈.

这是我的示例脚本:

# coding=utf-8

import rclpy
import rclpy.node as node
import cv2
import numpy as np
import sensor_msgs.msg as msg

import third_party.ros.ros as ros

class TestDisplayNode(node.Node):
    def __init__(self):
        super().__init__('IProc_TestDisplayNode')
        self.__window_name = "img"
        self.sub = self.create_subscription(msg.Image, 'Vision_sensor', self.msg_callback)

    def msg_callback(self, m : msg.Image):
        np_img = np.reshape(m.data, (m.height, m.width, 3)).astype(np.uint8)
        self.display(np_img)

    def display(self, img : np.ndarray):
        cv2.imshow(self.__window_name, cv2.cvtColor(img, cv2.COLOR_RGB2BGR))
        cv2.waitKey(1)

def main():
    ros_core = Ros2CoreWrapper()

    node = TestDisplayNode()

    rclpy.spin(node)

    node.destroy_node()
    rclpy.shutdown()

if __name__ == "__main__": …
Run Code Online (Sandbox Code Playgroud)

python python-3.x ros ros2

5
推荐指数
1
解决办法
530
查看次数

使用不同的 clang 格式版本统一输出

我们尝试使用 clang-format 工具稍微美化我们的代码。

为了在我们所做的所有机器上得到统一的结果clang-format --style=llvm --dump-config,已经稍微调优并存储到 repo 中。

问题是 clang 10 和 9 似乎为我们提供了完全相同的代码的不同输出。到目前为止,我只看到了注释对齐的变化,但它仍然打破了使代码风格一致的整个想法。另一个问题是 clang 9 无法解析从 v10 转储的某些设置。

有什么方法可以确保多个版本的 clang-format 格式一致?

c c++ llvm clang-format

5
推荐指数
1
解决办法
436
查看次数

如何在vhdl中创建包含文件?

我需要使用一个模块,我之前在另一个模块中使用vhdl创建,我无法找到有关如何执行此操作的任何信息.我被迫使用maxplus2,我唯一发现的是我可以在那里创建包含文件(将有.inc扩展名),但我仍然无法将它包含在我的第二个模块中.我整个上午都在寻找这些信息,但一无所获.任何人都可以帮助我吗?

vhd vhdl

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

如何正确结束装配?

我有一个问题是正确终止用Assembly编写的16位DOS程序.这是代码的一部分:

.386P
.model flat

stack_s segment stack 'stack' 
        db 256 dup(0)
stack_s ends

data segment use16
data ends

code segment 'code' use16
assume cs:code, ds:data

main proc
    mov ax, data
    mov ds, ax

    iretd
main endp

code ends
end main
Run Code Online (Sandbox Code Playgroud)

问题是,程序没有以正确的方式终止.DOSBox只是冻结了.我试图了解使用调试器会发生什么,并且看起来程序在iretd执行后最终会在无限循环中结束.为什么会这样?如何正确终止16位DOS应用程序?

assembly dos

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

标签 统计

c++ ×4

c ×3

python ×2

python-3.x ×2

asp.net-mvc-3 ×1

assembly ×1

clang-format ×1

dos ×1

fifo ×1

gstreamer ×1

linux ×1

llvm ×1

oop ×1

opencv ×1

regex ×1

ros ×1

ros2 ×1

sockets ×1

udp ×1

uml ×1

vhd ×1

vhdl ×1