Rumah hujung hadapan web tutorial js AngularJS memuat naik fail ke belakang ASP.NET API controller_AngularJS

AngularJS memuat naik fail ke belakang ASP.NET API controller_AngularJS

May 16, 2016 pm 03:16 PM
angularjs api asp.net Muat naik fail

Contoh artikel ini memperkenalkan kaedah pelaksanaan untuk memuat naik fail dari bahagian hadapan AngularJS ke bahagian belakang ASP.NET Web API Kandungan khusus adalah seperti berikut

Pelayan pertama:

public class FilesController : ApiController
{
  //using System.Web.Http
  [HttpPost]
  public async Task<HttpResponseMessage> Upload()
  {
    if(!Request.Content.IsMimeMultipartContent())
    {
      this.Request.CreateResponse(HttpStatusCode.UnsuportedMediaType);
    }
    
    var provider = GetMultipartProvider();
    var result = await Request.Content.ReadAsMultipartAsync(provider);
    
    //文件名类似"BodyPart_26d6abe1-3ae1-416a-9429-b35f15e6e5d5"这样的格式
    var originalFileName = GetDeserializedFileName(result.FileData.First());
    
    var uploadFileInfo = new FileInfo(result.FileData.First().LocalFileName);
    
    //如果前端无表单数据,这里注销
    var filleUploadObj = GetFormData<UploadDataModel>(result);
    
    var returnData = "ReturnTest";
    return this.Request.CreateResponse(HttpStatusCode.OK, new {returnData});
  }
  
  private MultipartFormDataStreamProvider GetMultipartProvider()
  {
    //图片的上传路径
    var uploadFolder = "~/App_Data/FileUploads";
    
    //获取根路径
    var root = HttpContext.Current.Server.MapPath(uploadFolder);
    
    //创建文件夹
    Directory.CreateDirectory(root);
    return new MultipartFormDataStreamProvider(root);
  }
  
  //从Provider中获取表单数据
  private object GetFormData<T>(MultipartFormDataStreamProvider result)
  {
    if(result.FormData.HasKeys())
    {
      var unescapedFormData = Uri.UnescapeDataString(result.FormData.GetValues(0).FirstOrDefault() &#63;&#63; String.Empty);
      
      if(!String.IsNullOrEmpty(unescapedFormData))
      {
        return JsonConvert.DeserializeObject<T>(upescapedFormData);
      }
    }
    return null;
  }
  
  //获取反序列化文件名
  private string GetDeserializedFileName(MultipartFileData fileData)
  {
    var fileName = GetFileName(fileData);
    return JsonConvert.DeserializedObject(fileName).ToString();
  }
  
  //获取文件名
  public string GetFileName(MultipartFileData fileData)
  {
    return fileData.Headers.ContentDisposition.FileName;
  }
}
Salin selepas log masuk

UploadDataModel.cs

public class UploadDataModel
{
  public string testString1{get;set;}
  public string testString2{get;set;}
}
 

Salin selepas log masuk

Halaman utama pelanggan:

index.html

<div ng-include="'upload.html'"></div>
Salin selepas log masuk

Petikan:

  • angular-file-upload-shim.js
  • angular.js
  • angular-file-upload.js
  • angular-cookies.js
  • angular-resource.js
  • sudut-sanitize.js
  • angular-route.js
  • app.js
  • muat naik.js

Halaman paparan separa upload.html digunakan untuk menerima fail.

muat naik.html

<div ng-controller="UploadCtrl"
  <input type="file" ng-file-select="onFileSelect($files)" multiple>
</div>
Salin selepas log masuk

kebergantungan modul app.js dan konfigurasi global.

app.js

'use strict'

angular.module('angularUploadApp',[
  'ngCookies',
  'ngResource',
  'ngSanitize',
  'ngRoute',
  'angularFileUpload'
])
.config(function($routeProvider){
  $routeProvider
    .when('/', {
      templateUrl: 'upload.html',
      controller: 'UploadCtrl'
    })
    .otherwise({
      resirectTo: '/'
    })
})

Salin selepas log masuk

Pengawal menyediakan kaedah untuk memuat naik dan membatalkan muat naik.

muat naik.js

'use strict';

angular.module('angularUploadApp')
  .controller('UploadCtrl', function($scope, $http, $timeout, $upload){
    $scope.upload = [];
    $scope.fileUploadObj = {testString1: "Test ring 1", testString2: "Test string 2"};
    
    $scope.onFileSelect = function ($files) {
      //$files: an array of files selected, each file has name, size, and type.
      for (var i = 0; i < $files.length; i++) {
        var $file = $files[i];
        (function (index) {
          $scope.upload[index] = $upload.upload({
            url: "./api/files/upload", // webapi url
            method: "POST",
            data: { fileUploadObj: $scope.fileUploadObj },
            file: $file
          }).progress(function (evt) {
            // get upload percentage
            console.log('percent: ' + parseInt(100.0 * evt.loaded / evt.total));
          }).success(function (data, status, headers, config) {
            // file is uploaded successfully
            console.log(data);
          }).error(function (data, status, headers, config) {
            // file failed to upload
            console.log(data);
          });
        })(i);
      }
    }

    $scope.abortUpload = function (index) {
      $scope.upload[index].abort();
    }
  })
Salin selepas log masuk

Di atas ialah kaedah pelaksanaan untuk memuat naik fail daripada AngularJS bahagian hadapan ke API Web ASP.NET bahagian belakang saya harap ia akan membantu pembelajaran semua orang.

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

<🎜>: Bubble Gum Simulator Infinity - Cara Mendapatkan dan Menggunakan Kekunci Diraja
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Nordhold: Sistem Fusion, dijelaskan
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Mandragora: Whispers of the Witch Tree - Cara Membuka Kunci Cangkuk Bergelut
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Tutorial Java
1666
14
Tutorial PHP
1273
29
Tutorial C#
1253
24
Bagaimana untuk memuat naik fail ke cakera awan 123 Bagaimana untuk memuat naik fail ke cakera awan 123 Feb 24, 2024 pm 05:30 PM

Bagaimana untuk memuat naik fail ke 123 Cloud Disk? Anda boleh memuat naik fail ke 123 Cloud Disk untuk simpanan, tetapi kebanyakan rakan tidak tahu cara memuat naik fail ke 123 Cloud Disk. Seterusnya ialah gambar dan teks cara memuat naik fail ke 123 Cloud Cakera yang dibawa oleh editor untuk Tutorial pemain, pengguna yang berminat datang dan lihat! Cara memuat naik fail pada 123 Cloud Disk 1. Mula-mula buka 123 Cloud Disk dan masukkan halaman utama, daftar atau log masuk ke akaun 2. Kemudian masukkan halaman seperti yang ditunjukkan di bawah, klik butang [Muat naik] berpandukan anak panah; 3. Kemudian bahagian bawah akan mengembang Dalam tetingkap bar fungsi, klik fungsi [Pilih Fail] 4. Akhir sekali, pilih fail untuk dimuat naik dan tunggu muat naik selesai.

Bagaimana untuk merangkak dan memproses data dengan memanggil antara muka API dalam projek PHP? Bagaimana untuk merangkak dan memproses data dengan memanggil antara muka API dalam projek PHP? Sep 05, 2023 am 08:41 AM

Bagaimana untuk merangkak dan memproses data dengan memanggil antara muka API dalam projek PHP? 1. Pengenalan Dalam projek PHP, kita selalunya perlu merangkak data dari tapak web lain dan memproses data ini. Banyak tapak web menyediakan antara muka API, dan kami boleh mendapatkan data dengan memanggil antara muka ini. Artikel ini akan memperkenalkan cara menggunakan PHP untuk memanggil antara muka API untuk merangkak dan memproses data. 2. Dapatkan URL dan parameter antara muka API Sebelum memulakan, kita perlu mendapatkan URL antara muka API sasaran dan parameter yang diperlukan.

Panduan Penggunaan API Oracle: Meneroka Teknologi Antaramuka Data Panduan Penggunaan API Oracle: Meneroka Teknologi Antaramuka Data Mar 07, 2024 am 11:12 AM

Oracle ialah penyedia sistem pengurusan pangkalan data yang terkenal di dunia, dan APInya (Antara Muka Pengaturcaraan Aplikasi) ialah alat berkuasa yang membantu pembangun berinteraksi dan menyepadukan dengan mudah dengan pangkalan data Oracle. Dalam artikel ini, kami akan menyelidiki panduan penggunaan API Oracle, menunjukkan kepada pembaca cara menggunakan teknologi antara muka data semasa proses pembangunan dan menyediakan contoh kod khusus. 1. Oracle

Analisis strategi integrasi API Oracle: mencapai komunikasi lancar antara sistem Analisis strategi integrasi API Oracle: mencapai komunikasi lancar antara sistem Mar 07, 2024 pm 10:09 PM

Analisis strategi penyepaduan API Oracle: Untuk mencapai komunikasi yang lancar antara sistem, contoh kod khusus diperlukan Dalam era digital hari ini, sistem perusahaan dalaman perlu berkomunikasi antara satu sama lain dan berkongsi data, dan Oracle API ialah salah satu alat penting untuk membantu mencapai kelancaran. komunikasi antara sistem. Artikel ini akan bermula dengan konsep dan prinsip asas OracleAPI, meneroka strategi penyepaduan API, dan akhirnya memberikan contoh kod khusus untuk membantu pembaca memahami dan menggunakan OracleAPI dengan lebih baik. 1. API Oracle Asas

Cadangan pembangunan: Cara menggunakan rangka kerja ThinkPHP untuk pembangunan API Cadangan pembangunan: Cara menggunakan rangka kerja ThinkPHP untuk pembangunan API Nov 22, 2023 pm 05:18 PM

Cadangan pembangunan: Cara menggunakan rangka kerja ThinkPHP untuk pembangunan API Dengan pembangunan berterusan Internet, kepentingan API (Antara Muka Pengaturcaraan Aplikasi) telah menjadi semakin menonjol. API ialah jambatan untuk komunikasi antara aplikasi yang berbeza Ia boleh merealisasikan perkongsian data, panggilan fungsi dan operasi lain, dan menyediakan pembangun kaedah pembangunan yang agak mudah dan pantas. Sebagai rangka kerja pembangunan PHP yang sangat baik, rangka kerja ThinkPHP adalah cekap, berskala dan mudah digunakan.

Panduan Panggilan API React: Cara berinteraksi dan memindahkan data dengan API bahagian belakang Panduan Panggilan API React: Cara berinteraksi dan memindahkan data dengan API bahagian belakang Sep 26, 2023 am 10:19 AM

Panduan Panggilan ReactAPI: Cara berinteraksi dan memindahkan data ke API bahagian belakang Gambaran Keseluruhan: Dalam pembangunan web moden, berinteraksi dengan dan memindahkan data ke API bahagian belakang adalah keperluan biasa. React, sebagai rangka kerja bahagian hadapan yang popular, menyediakan beberapa alat dan ciri yang berkuasa untuk memudahkan proses ini. Artikel ini akan memperkenalkan cara menggunakan React untuk memanggil API bahagian belakang, termasuk permintaan GET dan POST asas serta memberikan contoh kod khusus. Pasang kebergantungan yang diperlukan: Pertama, pastikan Axi dipasang dalam projek

Bagaimana untuk menangani masalah ralat API Laravel Bagaimana untuk menangani masalah ralat API Laravel Mar 06, 2024 pm 05:18 PM

Tajuk: Cara menangani pelaporan ralat API Laravel, contoh kod khusus diperlukan Semasa membangunkan Laravel, ralat API sering ditemui. Ralat ini mungkin datang daripada pelbagai sebab seperti ralat logik kod program, masalah pertanyaan pangkalan data atau kegagalan permintaan API luaran. Cara mengendalikan laporan ralat ini ialah isu utama Artikel ini akan menggunakan contoh kod khusus untuk menunjukkan cara mengendalikan laporan ralat API Laravel dengan berkesan. 1. Ralat pengendalian dalam Laravel

Tutorial Insomnia: Cara menggunakan antara muka API PHP Tutorial Insomnia: Cara menggunakan antara muka API PHP Jan 22, 2024 am 11:21 AM

Antara muka API PHP: Cara menggunakan Insomnia Insomnia ialah alat ujian dan penyahpepijatan API yang berkuasa Ia boleh membantu pembangun dengan cepat dan mudah menguji dan mengesahkan antara muka API Ia menyokong berbilang bahasa pengaturcaraan dan protokol, termasuk PHP. Artikel ini akan memperkenalkan cara menggunakan Insomnia untuk menguji antara muka PHPAPI. Langkah 1: Pasang InsomniaInsomnia ialah aplikasi merentas platform yang menyokong Windows, MacOS dan Linux.

See all articles