J'essaie d'obtenir le téléchargement slick de travailler dans une boîte de dialogue JQuery UI. Je l'ai téléchargée simplement le fichier, et j'ai vérifié les échantillons, et ils se retrouvent tous avec toute la page de rechargement de la page. J'ai réussi à le faire, il ne s'agit pas de son dernier post-pack de traiter les fichiers après les téléchargements en définissant le donc il met maintenant les fichiers sur le serveur, avec le nom de gestion aléatoire. et il obtient une réponse qui ressemble à ceci: p> Alors, ce que j'ai besoin de savoir est: Comment puis-je publier Ajaxly ce que le téléchargement slick est automatiquement lorsque vous avez l'autopostbackafterupload réglé sur vrai. P> Voici mon code:
P> autoposostbackafterupload = "false" code>
<kw:SlickUpload ID="SlickUpload1" runat="server" AutoPostBackAfterUpload="false" UploadFormId="uploadForm" ShowDuringUploadElements="cancelButton" HideDuringUploadElements="uploadButton" MaxFiles="1" AutoUploadOnPostBack="false" ProgressInterval="200">
<DownlevelSelectorTemplate>
<input type="file" />
</DownlevelSelectorTemplate>
<UplevelSelectorTemplate>
<input type="button" value="Add File" />
</UplevelSelectorTemplate>
<FileTemplate>
<kw:FileListRemoveLink runat="server">[x] remove</kw:FileListRemoveLink>
<kw:FileListFileName runat="server" />
<kw:FileListValidationMessage runat="server" ForeColor="Red" />
</FileTemplate>
<ProgressTemplate>
<table width="99%">
<tr>
<td>
Uploading <kw:UploadProgressElement ID="UploadProgressElement1" runat="server" Element="FileCountText" />,
<kw:UploadProgressElement ID="UploadProgressElement2" runat="server" Element="ContentLengthText">(calculating)</kw:UploadProgressElement>.
</td>
</tr>
<tr>
<td>
Currently uploading:
<kw:UploadProgressElement ID="UploadProgressElement3" runat="server" Element="CurrentFileName" />,
file <kw:UploadProgressElement ID="UploadProgressElement4" runat="server" Element="CurrentFileIndex"> </kw:UploadProgressElement>
of
<kw:UploadProgressElement ID="UploadProgressElement5" runat="server" Element="FileCount" />.
</td>
</tr>
<tr>
<td>
Speed:
<kw:UploadProgressElement ID="UploadProgressElement6" runat="server" Element="SpeedText">(calculating)</kw:UploadProgressElement>.
</td>
</tr>
<tr>
<td>
About
<kw:UploadProgressElement ID="UploadProgressElement7" runat="server" Element="TimeRemainingText">(calculating)</kw:UploadProgressElement> remaining.
</td>
</tr>
<tr>
<td>
<div style="border: 1px solid #008800; height: 1.5em; position: relative">
<kw:UploadProgressBarElement ID="UploadProgressBarElement1" runat="server" Style="background-color: #00ee00; width: 0; height: 1.5em" />
<div style="text-align: center; position: absolute; top: .15em; width: 100%">
<kw:UploadProgressElement ID="UploadProgressElement8" runat="server" Element="PercentCompleteText">(calculating)</kw:UploadProgressElement>
</div>
</div>
</td>
</tr>
</table>
</ProgressTemplate>
</kw:SlickUpload>
<p>
<input type="button" value="Upload" id="uploadButton" />
<a href="javascript:kw.get('<%=SlickUpload1.ClientID %>').cancel()" id="cancelButton" style="display:none">Cancel</a>
</p>
<%Html.EndForm()%>
<script type="text/javascript">
var theThing;
var urlToPost = "theUrlThatHandlesThePostBack";
function v2SetUpPhotoDialog() {
theThing = kw.get("<%=SlickUpload1.ClientID %>");
theThing.add_OnUploadEnded(function (status) {
var data = $('#uploadForm').serialize();
$.ajax({
type: 'POST',
url: urlToPost,
data: data,
success: function () {
v2RegularNotice('success');
},
error: function () {
v2RegularNotice('fail');
}
});
});
$('#uploadButton').live('click', function () {
theThing = kw.get("<%=SlickUpload1.ClientID %>");
theThing.submit();
return false;
// kw.get("<%=SlickUpload1.ClientID %>").submit();
});
}
</script>
3 Réponses :
Je déteste les iframes, mais je pense que c'est la voie la plus facile à aller ici.
Alternativement, vous pouvez utiliser JQuery Form Plugin http://malsup.com/jQuery/form/ p>
Les iframes pourraient fonctionner, à l'aide d'Ajaxform Ne pouvais-je pas soumettre le formulaire Ajaxly, il manque tout simplement un tas de choses qui se font soumettre lorsque je le laisse faire sa propre chose.
Avec Ajaxform, vous utilisez un plugin JQuery supplémentaire prenant en charge les téléchargements de fichiers. JQuery ne prend pas en charge les téléchargements de fichiers hors de la boîte. Si vous manquez toujours des données, quelles données spécifiquement?
Lorsque le contrôle du téléchargement fait, c'est une chose automatiquement, il remplit tout le contrôle de UpploadStatus, je ne peux pas comprendre où il obtient toutes les informations. Chris du téléchargement slick travaille cependant sur une solution.
Eh bien, c'était en fait beaucoup plus simple que je m'attendais. Voici ce que j'ai et cela fonctionne: ceci combiné avec le classeur de modèle personnalisé trouvé ici: http: //krystalware.com/blog/archive/2010/02/27/modelbinder -Ap.net-mvc-upstatus-contrôleur-action-action -action.aspx p> vous permet d'avoir une action de contrôleur comme ceci: p> et statut est correctement peuplée. P> Donc, fondamentalement, il devait avoir: p> cette partie ajoutée. p> Le thread de support peut être trouvé ici:
http://krystalware.com/forums/yaf_postsm5128_aspnet -mvc-ajax-upload-Sans-update-panneau.aspx # post5128 p> p>
Après avoir travaillé avec Patrica, cette question a été résolue. Nous avons rencontré un couple de plus, mais les bases sont les suivantes:
La principale chose au travail ici est une limitation de la conception de Slickupload: vous ne pouvez pas supprimer un contrôle slickupload de la DOM une fois qu'il a été ajouté et ensuite la lecture à nouveau plus tard. Cela sera résolu dans Slickupload6, mais malheureusement une limitation avec la version actuelle. Pour résoudre ce problème, nous cachatons la commande lorsque l'onglet ou la boîte de dialogue était invisible, au lieu de le retirer réellement. P>
Il existe également une version de version mineure slickupload (5.5.9) qui ajoute une méthode get_uploadid (), Pour obtenir l'identifiant de téléchargement pour le téléchargement actuel plus facile. p>
Ce code (d'en haut): p> devient: p> kw_uploadId: theThing.get_UploadId(),
Aussi: Où est l'ajout d'un bouton de prime caché?
Les restrictions générales de Patiricia sont expliquées dans la FAQ. Vous avez sûrement lu la FAQ avant de poster une question. ;) Stackoverflow.com/faq
@bzlm Ooooh à droite, oublié la restriction de 2 jours. Merci d'avoir fait remarquer cela. Je pensais que je devais juste devenir fou.
@ Patiricia, vous pourriez toujours devenir fou. La FAQ ne dit rien à ce sujet.
Oui! Les questions doivent avoir au moins 2 jours pour être éligibles pour une prime.
Ugh, je viens d'essayer d'envoyer un courriel au courrier électronique de support et de le récupérer.
Le gars de téléchargement slick travaille sur une solution!