Je travaille sur Visual Studio 15. Mon application doit télécharger un fichier de taille 6MB. J'utilise .Net 4.5.1 avec Entity Framework 6.Visual studio ne répond pas à télécharger un fichier de taille 6MB
Le script et le code html suivants sont écrits au niveau de vue rasoir pour sélectionner et vérifier le téléchargement du fichier.
$('#SaveResponse').click(function() {
var data = new FormData();
var files = $("#imagefile").get(0).files;
if (files.length > 0) {
data.append("UploadedImage", files[0]);
}
else
{
alert('You have not selected any File');
return;
}
$.ajax({
async: false,
cache: false,
type: "POST",
dataType: "json",
contentType: false,
processData: false,
url: "@(Url.RouteUrl("UploadFile"))",
data: data,
success: function (JsonCP) {
if (JsonCP.msg != null) {
if (JsonCP.msg.Key) {
alert(JsonCP.msg.Value);
$("#fileUpload").val('');
} else
alert(JsonCP.msg.Value);
}
},
error: function (JsonCP) {
alert(JsonCP.msg.Value);
}
});
});
<table>
<tr>
<td align="right" width="200px">@Html.Label("Select the File:")</td>
<td align="left" width="200px"><input type="file" id="imagefile" />
</td>
</tr>
<tr>
<td colspan="2" align="center"><input type="button" value="Save this
Response" id="SaveResponse" name="SaveResponse" /></td>
</tr>
</table>
Le code suivant est écrit dans le contrôleur pour obtenir le téléchargement du fichier et afficher le message approprié. La fonction suivante est utilisée pour insérer une ligne dans une table de base de données SQL appelée Réponses.
public int insertResponse()
{
using (Entities cntx = new Entities())
{
cntx.Responses.Add(this.response);cntx.Entry(this.response).
State = System.Data.Entity.EntityState.Added;
int ex=cntx.SaveChanges();
return ex;
}
}
L'une des colonnes de la table de réponses appelée responseImage est le type de données de fileStream. Une autre colonne est de type uniqueIdentifier. La création de table sql est donnée ci-dessous.
CREATE TABLE [dbo].[Responses] (
[ResponseId] UNIQUEIDENTIFIER ROWGUIDCOL NOT NULL,
[ResponseImage] VARBINARY (MAX) FILESTREAM NULL,
CONSTRAINT [PK_Responses] PRIMARY KEY CLUSTERED ([ResponseId] ASC)
FILESTREAM_ON [FileStreamGroup], UNIQUE NONCLUSTERED ([ResponseId] ASC)
);
Le fichier confif Web est défini comme celui-ci
<system.web>
<authentication mode="None" />
<compilation debug="true" targetFramework="4.5.1" />
<httpRuntime targetFramework="4.5.1" maxRequestLength="3145728"
executionTimeout="9999999" useFullyQualifiedRedirectUrl="false"
minFreeThreads="8" minLocalRequestFreeThreads="4"
appRequestQueueLimit="1000"/>
</system.web>
<system.webServer>
<security>
<requestFiltering>
<requestLimits maxAllowedContentLength="3221225472" />
</requestFiltering>
</security>
Le programme fonctionne correctement et affiche le message approprié pour les fichiers de petite taille, mais pour les fichiers de taille 3 Mo, il ne montre pas message d'erreur même pas de mémoire. Mais la ligne et le fichier sont sauvegardés. Pourquoi ne montre-t-il aucun message alors qu'il télécharge le fichier?
Visual Studio 15: Voulez-vous dire VS2015 (v14.x) ou VS2017 (v15.x)? –
Je vois que vous avez le côté client, le côté serveur et la logique SQL Server. Avez-vous été en mesure de déboguer pour vérifier si le problème entre les deux premiers ou les deux derniers des trois composants? –
Le problème est que le serveur n'envoie pas de message au client –