Skip to content

HoussemDellai/UploadFileToServer

Repository files navigation

UploadFileToServer

Upload a file from Xamarin Forms app to ASP.NET web application.

This repo shows how to upload a file from Xamarin Forms app:

    private MediaFile _mediaFile;

    private async void UploadFile_Clicked(object sender, EventArgs e)
    {
        var content = new MultipartFormDataContent();

        content.Add(new StreamContent(_mediaFile.GetStream()),
            "\"file\"",
            $"\"{_mediaFile.Path}\"");

        var httpClient = new HttpClient();

        var uploadServiceBaseAddress = "http://uploadtoserver.azurewebsites.net/api/Files/Upload";
        //"http://localhost:12214/api/Files/Upload";

        var httpResponseMessage = await httpClient.PostAsync(uploadServiceBaseAddress, content);

        RemotePathLabel.Text = await httpResponseMessage.Content.ReadAsStringAsync();
    }

And shows to get and save that file with an ASP.NET application:

public class UploadsController : ApiController
{
    [Route("api/Files/Upload")]
    public async Task<string> Post()
    {
        try
        {
            var httpRequest = HttpContext.Current.Request;

            if (httpRequest.Files.Count > 0)
            {
                foreach (string file in httpRequest.Files)
                {
                    var postedFile = httpRequest.Files[file];

                    var fileName = postedFile.FileName.Split('\\').LastOrDefault().Split('/').LastOrDefault();

                    var filePath = HttpContext.Current.Server.MapPath("~/Uploads/" + fileName);

                    postedFile.SaveAs(filePath);

                    return "/Uploads/" + fileName;
                }
            }
        }
        catch (Exception exception)
        {
            return exception.Message;
        }

        return "no files";
    }
}

About

Upload a file from Xamarin Forms app to ASP.NET web application.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published