相关疑难解决方法(0)

将任何文件保存到数据库中,只需将其转换为字节数组?

将文件转换为字节数组是将ANY文件格式保存到磁盘或数据库var二进制列的最佳方法吗?

因此,如果有人想保存.gif或.doc/.docx或.pdf文件,我可以将其转换为字节数UFT8并将其作为字节流保存到数据库中吗?

c# file-io byte

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

Web API:如何在使用MultipartMemoryStreamProvider时访问多部分表单值?

我曾经用来MultipartFormDataStreamProvider处理多部分请求.

由于我希望将上传的文件存储在内存中而不是磁盘文件中,因此我更改了要使用的代码MultipartMemoryStreamProvider.文件加载似乎工作正常,但我不再能够访问通过provider.FormData下面提供的其他表单值MultipartFormDataStreamProvider.有人能告诉我怎么做吗?

Fiddler捕获的原始请求:

POST http://myserver.com/QCCSvcHost/MIME/RealtimeTrans/ HTTP/1.1
Content-Type: multipart/form-data; boundary="XbCY"
Host: na-w-lxu3
Content-Length: 1470
Expect: 100-continue
Connection: Keep-Alive

--XbCY
Content-Type: text/plain; charset=utf-8
Content-Disposition: form-data; name=PayloadType

X12_270_Request_005010X279A1
--XbCY
Content-Type: text/plain; charset=utf-8
Content-Disposition: form-data; name=ProcessingMode

RealTime
--XbCY
Content-Type: text/plain; charset=utf-8
Content-Disposition: form-data; name=PayloadID

e51d4fae-7dec-11d0-a765-00a0c91e6fa6
--XbCY
Content-Type: text/plain; charset=utf-8
Content-Disposition: form-data; name=TimeStamp

2007-08-30T10:20:34Z
--XbCY
Content-Type: text/plain; charset=utf-8
Content-Disposition: form-data; name=SenderID

HospitalA
--XbCY
Content-Type: text/plain; charset=utf-8
Content-Disposition: form-data; name=ReceiverID

PayerB
--XbCY
Content-Type: text/plain; charset=utf-8
Content-Disposition: form-data; name=CORERuleVersion …
Run Code Online (Sandbox Code Playgroud)

multipartform-data asp.net-web-api

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

Webapi formdata上传(到DB)有额外的参数

我需要上传文件发送额外的参数.

我在stackoverflow中找到了以下帖子:带有额外参数的Webapi ajax formdata上传

它描述了如何使用MultipartFormDataStreamProvider并将数据保存到文件服务器.我不需要将文件保存到服务器,而是保存到DB.我已经使用MultipartMemoryStreamProvider处理代码,但它不使用额外的参数.

你能告诉我如何在webapi中处理额外的参数吗?

例如,如果我添加文件并测试参数:

data.append("myParameter", "test"); 
Run Code Online (Sandbox Code Playgroud)

这是我的webapi处理fileupload而没有额外的参数:

if (Request.Content.IsMimeMultipartContent())
{               
    var streamProvider = new MultipartMemoryStreamProvider();
    var task = Request.Content.ReadAsMultipartAsync(streamProvider).ContinueWith<IEnumerable<FileModel>>(t =>
    {
        if (t.IsFaulted || t.IsCanceled)
        {
            throw new HttpResponseException(HttpStatusCode.InternalServerError);
        }

        _fleDataService = new FileDataBLL();
        FileData fle;

        var fleInfo = streamProvider.Contents.Select(i => {         
            fle = new FileData();
            fle.FileName = i.Headers.ContentDisposition.FileName;

            var contentTest = i.ReadAsByteArrayAsync();
            contentTest.Wait();
            if (contentTest.Result != null)
            {
                fle.FileContent = contentTest.Result;
            }                       

            // get extra parameters here ??????

            _fleDataService.Save(fle);

            return new FileModel(i.Headers.ContentDisposition.FileName, 1024); //todo
        }); …
Run Code Online (Sandbox Code Playgroud)

c# file-upload form-data asp.net-web-api

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

带有额外参数的Webapi ajax formdata上传

我正在使用jQuery ajax上传文件,但想在webapi方法上添加一些参数,这里是:

var data = new FormData();
data.append("file", $("#file")[0].files[0]);
data.append("myParameter", "test"); // with this param i get 404

$.ajax({
    url: '/api/my/upload/',
    data: data,
    cache: false,
    contentType: false,
    processData: false,
    type: 'POST',
    success: function (data) {
        console.log(data);
    }
});
Run Code Online (Sandbox Code Playgroud)

Webapi控制器:

public class MyController : ApiController
{
    public string Upload(string myParameter)
    {
        return System.Web.HttpContext.Current.Request.Files.Count.ToString() + " / " + myParameter;
    }
}
Run Code Online (Sandbox Code Playgroud)

如果没有myParameter一切正常,但是当我在formdata和api方法中包含myParameter时,我得到404,有没有机会让它工作?

jquery multipartform-data asp.net-web-api

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