Я хотел бы знать, как настроить IIS 7.0, чтобы разрешить загрузку файлов APK?
Я нашел статью, в которой мне предлагается добавить новый тип MIME:
Расширение имени файла: .apk
Тип MIME: application / vnd.android.package-archive
Поскольку в IIS должен быть добавлен тип MIME, чтобы IIS мог поддерживать тип файла .APK.
Это все, что нужно?
Спасибо за любые ответы
Как правило, все, что требуется, - это добавить новый тип MIME:
application/vnd.android.package-archive
Добавьте это в web.config
:
<system.webServer>
<staticContent>
<mimeMap fileExtension="apk" mimeType="application/vnd.android.package-archive" />
</staticContent>
<system.webServer>
Использование описанного выше метода не требует установки типа MIME в IIS, просто добавьте статический контент в свой файл web.config, как упомянул Игорь.
Лучшим вариантом является использование MIME Zip-файла, поскольку apk на самом деле является zip-файлом, и IIS его знает.
у меня отлично работал с сервером с Windows 10 Anniversary.
Расширение : .apk
Введите MIME : application/octet-stream
Для приложений ASP.NET Core изменения IIS не будут работать.
В твоем Startup.cs
файл Configure
метод, внесите следующие изменения:
app.UseStaticFiles(new StaticFileOptions()
{
ContentTypeProvider = new FileExtensionContentTypeProvider(new Dictionary<string, string>
{
{ ".apk","application/vnd.android.package-archive"}
})
});
Лучшим вариантом является чтение пар типа extension / mime из config и вставка их в метод Config следующим образом, чтобы расширениями можно было управлять из конфигурации:
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; }
}