如何从php调用“asp.net api上传文件”

Posted

技术标签:

【中文标题】如何从php调用“asp.net api上传文件”【英文标题】:How to call "asp.net api upload file" from php 【发布时间】:2014-08-19 07:56:09 【问题描述】:

我使用 asp.net 创建一个服务 api,并使用方法 POST 上传任何文件,我想使用代码 php 调用该 api,但我不知道如何。

代码asp.net api上传文件如下:

public Task<IEnumerable<string>> Post()
    
        if (Request.Content.IsMimeMultipartContent())
        
            string fullPath = HttpContext.Current.Server.MapPath("~/uploads");
            MyMultipartFormDataStreamProvider streamProvider = new MyMultipartFormDataStreamProvider(fullPath);
            var task = Request.Content.ReadAsMultipartAsync(streamProvider).ContinueWith(t =>
            
                if (t.IsFaulted || t.IsCanceled)
                    throw new HttpResponseException(HttpStatusCode.InternalServerError);

                var fileInfo = streamProvider.FileData.Select(i =>
                
                    var info = new FileInfo(i.LocalFileName);
                    return "File uploaded as " + info.FullName + " (" + info.Length + ")";
                );
                return fileInfo;

            );
            return task;
        
        else
        
            throw new HttpResponseException(Request.CreateResponse(HttpStatusCode.NotAcceptable, "Invalid Request!"));
        
    

和类:

public class MyMultipartFormDataStreamProvider : MultipartFormDataStreamProvider

    public MyMultipartFormDataStreamProvider(string path)
        : base(path)
    

    

    public override string GetLocalFileName(System.Net.Http.Headers.HttpContentHeaders headers)
    
        string fileName;
        if (!string.IsNullOrWhiteSpace(headers.ContentDisposition.FileName))
        
            fileName = headers.ContentDisposition.FileName;
        
        else
        
            fileName = Guid.NewGuid().ToString() + ".data";
        
        return fileName.Replace("\"", string.Empty);
    

那么,我如何使用代码 php 调用这个 api 呢?

我将代码引用到:http://www.codeguru.com/csharp/.net/uploading-files-asynchronously-using-asp.net-web-api.htm

【问题讨论】:

【参考方案1】:

在我看来,您似乎有一个 php 网站,并在网上查看了上传示例并找到了一个 asp.net。

如果您运行 php,为什么不使用 php 进行上传?

【讨论】:

以上是关于如何从php调用“asp.net api上传文件”的主要内容,如果未能解决你的问题,请参考以下文章

如何调试从 PHP 文件调用的 Perl

如何从 PHP 进行 Win32 API 调用?

如何从 PHP 调用 DRPC Storm?

如何从需要 SUDO 的 php 调用 shell 脚本?

如何从 PHP 代码中调用 MySQL 存储过程?

如何从 PHP 代码中调用 MySQL 存储过程?