Je voudrais savoir comment configurer IIS 7.0 pour autoriser le téléchargement de fichiers APK?
J'ai trouvé un article qui me dit d'ajouter un nouveau type MIME:
Extension de nom de fichier: .apk
Type MIME: application/vnd.Android.package-archive
Parce que dans IIS, un type MIME doit être ajouté pour permettre à IIS de prendre en charge le type de fichier .APK).
Est-ce tout ce dont vous avez besoin?
Merci pour toutes les réponses
En règle générale, l'ajout d'un nouveau type MIME doit être suffisant:
application/vnd.Android.package-archive
Ajoutez ceci au web.config
:
<system.webServer>
<staticContent>
<mimeMap fileExtension="apk" mimeType="application/vnd.Android.package-archive" />
</staticContent>
<system.webServer>
Extension: .apk
Tapez MIME: application/octet-stream
L'utilisation de la méthode ci-dessus ne nécessite pas que le type MIME soit défini dans IIS, ajoutez simplement le contenu statique dans votre fichier web.config, comme mentionné par Igor
une meilleure option est d'utiliser le MIME d'un fichier Zip, car une apk est en fait un fichier Zip et est IIS le sait.
pour moi fonctionnait très bien avec un serveur avec Windows 10 Anniversary.
Pour les applications ASP.NET Core, les modifications IIS ne fonctionneront pas.
Dans ton Startup.cs
méthode du fichier Configure
, apportez les modifications suivantes:
app.UseStaticFiles(new StaticFileOptions()
{
ContentTypeProvider = new FileExtensionContentTypeProvider(new Dictionary<string, string>
{
{ ".apk","application/vnd.Android.package-archive"}
})
});
Une meilleure option consiste à lire les paires de types extension/mime dans config et à les injecter dans la méthode Config comme ceci afin que les extensions puissent être gérées à partir de la configuration:
appsettings.json
:
"StaticFilesConfig": {
"AllowedExtensions": {
".apk": "application/vnd.Android.package-archive",
".ext": "application/ext-example-mimetype" // example
}
}
Startup.cs
:
public void ConfigureServices(IServiceCollection services)
{
....
services.Configure<StaticFilesConfig>(Configuration.GetSection("StaticFilesConfig"));
....
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env
, ILoggerFactory loggerFactory, IOptions<StaticFilesConfig> staticFilesConfig)
{
...
if (staticFilesConfig != null)
{
SetStaticFileOptions(app, staticFilesConfig);
}
...
}
private void SetStaticFileOptions(IApplicationBuilder app
, IOptions<StaticFilesConfig> staticFilesOptions)
{
var mapping = staticFilesOptions.Value.AllowedExtensions;
if (mapping != null && mapping.Any())
{
var provider =
new FileExtensionContentTypeProvider(staticFilesOptions.Value.AllowedExtensions);
app.UseStaticFiles(new StaticFileOptions
{
ContentTypeProvider = provider
});
}
}
}
StaticFilesConfig.cs
:
public class StaticFilesConfig
{
public IDictionary<string, string> AllowedExtensions { get; set; }
}