Mettre à jour Windows 8.0 en 8.1 sans faire toutes les mises à jours du 8.0

En mettant a rude épreuve la patience de ses utilisateurs et l’écologie, Microsoft est très loin du « Green IT » dans sa démarche de mise à jour des ordinateurs neufs pré-installés en Windows 8.0 vers Windows 8.1.

En effet, il faut d’abord installer toutes les mises a jours (soit parfois 140 Mises à jours (près de 1,5Go) pour ensuite écraser le système par un autre… donc bien inutilement, puisque le système est remplacé.
(Réparer vous votre voiture avant de la mettre à la casse ?)

– Le coût carbone d’une telle démarche est lamentable.
– La perte de temps pour l’utilisateur l’est tout autant (surtout quand on sait que Windows 8.1 lui même dépasse les 3Go à télécharger et installer).
– Cerise sur le gâteau, sur certains ordinateurs neufs, il y a tellement de mise à jour a effectuer que le système se plante en tentant de les installer toutes.

 

Il existe une astuce pour éviter de faire l’ensemble des mises à jour du système que l’on va écraser:

1ère étape: on installe le correctif suivant:
http://support.microsoft.com/kb/2871389

Dans la barre d’adresse d’internet explorer, tapez

ms-windows-store:WindowsUpgrade

=> cela vous emmènera directement sur le store sur le package d’installation de 8.1.

Prévoyez cependant beaucoup de temps pour le téléchargement et l’installation de cette mise à jour très longue, a faire de préférence en branchant un câble réseau plutôt qu’en WIFI car en cas de coupure wifi… dommage.

Dans un monde pour Microsoft Windows n’est plus le système ultra dominant tel qu’il l’était il y a 10 ans, il serait peut-être temps que MICROSOFT prenne exemple sur MacOS qui passe en YOSEMITE sans toutes ces difficultés, idem pour UBUNTU lors d’une dist-upgrade. L’époque de la lourdeur institutionnalisée est révolue.

Bouton upload sans submit ni zone de texte (AJAX)

Après avoir chercher sur différents forums et site pour réaliser cela, voici une synthèse qui fonctionne.

Ce bouton permet de faire un upload de fichier en cliquant sur un seul bouton => dès que le fichier est sélectionnés, il est envoyé en POST en ajax.

Partie Javascript:

 $('.Bimport').click(function(e){
       e.preventDefault();
       $('Input[name="fichiercsv"]').click();
   });

   $('Input[name="fichiercsv"]').change(function (){
       $("#formimportcsv").submit();
   });

   $("body").on('submit','#formimportcsv', function(e) {
       e.preventDefault();
       $.ajax({
           type: 'POST',
           url: "/importcsv",
           data: new FormData(this),
           contentType: false,
           cache: false,    
           processData:false,  
           success: function (retour) {
               alert(retour);
               window.location.reload();
           },
           dataType: "html"
       });
  });

Partie HTML:

<form class="form-inline" action="/importcsv" method="post" role="form" id="formimportcsv" enctype="multipart/form-data">
    <a class='btn btn-primary Bimport' href=''>Import fichier TXT</a>
    <input type="file" style='position:absolute;z-index:2;top:0;left:0;filter: alpha(opacity=0);-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";opacity:0;background-color:transparent;color:transparent;' accept=".txt" name="fichiercsv" size="255">
</form>

 

Partie PHP (Laravel):

définir la route /importcsv » vers la fonction suivante:

public function importcsv(){
    $erreur="";

    if (!isset($_FILES["fichiercsv"])) {
         return "pas de réception de File";
    } else {

        if ($_FILES["fichiercsv"]["error"])
        {
            switch ($_FILES['fichiercsv']['error']){
                case 1: // UPLOAD_ERR_INI_SIZE
                     return "Le fichier dépasse la limite autorisée par le serveur (fichier php.ini) !";
                    break;
                case 2: // UPLOAD_ERR_FORM_SIZE
                     return "Le fichier dépasse la limite autorisée dans le formulaire HTML !";
                    break;
                case 3: // UPLOAD_ERR_PARTIAL
                     return "L'envoi du fichier a été interrompu pendant le transfert !";
                    break;
                case 4: // UPLOAD_ERR_NO_FILE
                     return "Le fichier que vous avez envoyé a une taille nulle !";
                    break;
            }

        }
        else {
            $typeautorises = Array('text/plain');
            if (!in_array($_FILES["fichiercsv"]["type"], $typeautorises)) {
                return 'Format non accepté';
            } else {
                if (!$_FILES["fichiercsv"]["name"]) {
                    return 'Nom de fichier vide';
                } else {
                    if ($_FILES["fichiercsv"]["size"] == 0) {
                        return 'Fichier reçu vide';
                    } else {
                    
                    // votre traitement ici

                    }

                }
            }
        }
    }
    return "Importation OK";
}

 

Explications:

  • Le champ input est invisible et le click du bouton affiché déclenche un click sur le champ caché.
  • Une fois le fichier choisi, l’évènement change déclenche la soumission du formulaire
  • La soumission est interceptée et envoyée en ajax.
  • La fonction PHP analyse la validité du fichier, puis exécute votre traitement.
  • Le texte renvoyé par la fonction PHP est affiché dans une boite d’alerte, puis la fenêtre html est réactualisée.