Автор: admin

  • Date range picker for bootstrap russian localization. Выбор диапазона дат для бутстрап с русской локализацией.

    Скачать  date range picker на русском языке.

    daterangepicker — по этой ссылке вы можете скачать пример и протестировать его у себя. Jquery date range picker with russian localisation.

    Jquery плагин для выбор диапазона дат.

    Код примера.

    1. <!-- Include Required Prerequisites -->
    2. <script type="text/javascript" src="http://cdn.jsdelivr.net/jquery/1/jquery.min.js"></script>
    3. <script type="text/javascript" src="http://cdn.jsdelivr.net/momentjs/latest/moment.min.js"></script>
    4. <link rel="stylesheet" type="text/css" href="http://cdn.jsdelivr.net/bootstrap/3/css/bootstrap.css" />
    5. <!-- Include Date Range Picker -->
    6. <script type="text/javascript" src="http://cdn.jsdelivr.net/bootstrap.daterangepicker/2/daterangepicker.js"></script>
    7. <link rel="stylesheet" type="text/css" href="http://cdn.jsdelivr.net/bootstrap.daterangepicker/2/daterangepicker.css" />
    8. <input type="text" name="daterange" value="01/01/2015 - 01/31/2015" />
    9. <script type="text/javascript">
    10. $(function() {
    11. $('input[name="daterange"]').daterangepicker({
    12. "locale": {
    13. "format": "MM/DD/YYYY",
    14. "separator": " - ",
    15. "applyLabel": "Применить",
    16. "cancelLabel": "Отмена",
    17. "fromLabel": "От",
    18. "toLabel": "До",
    19. "customRangeLabel": "Свой",
    20. "daysOfWeek": [
    21. "Вс",
    22. "Пн",
    23. "Вт",
    24. "Ср",
    25. "Чт",
    26. "Пт",
    27. "Сб"
    28. ],
    29. "monthNames": [
    30. "Январь",
    31. "Февраль",
    32. "Март",
    33. "Апрель",
    34. "Май",
    35. "Июнь",
    36. "Июль",
    37. "Август",
    38. "Сентябрь",
    39. "Октябрь",
    40. "Ноябрь",
    41. "Декабрь"
    42. ],
    43. "firstDay": 1
    44. }
    45. });});
    46. </script>
    <!-- Include Required Prerequisites -->
    <script type="text/javascript" src="http://cdn.jsdelivr.net/jquery/1/jquery.min.js"></script>
    <script type="text/javascript" src="http://cdn.jsdelivr.net/momentjs/latest/moment.min.js"></script>
    <link rel="stylesheet" type="text/css" href="http://cdn.jsdelivr.net/bootstrap/3/css/bootstrap.css" />
     
    <!-- Include Date Range Picker -->
    <script type="text/javascript" src="http://cdn.jsdelivr.net/bootstrap.daterangepicker/2/daterangepicker.js"></script>
    <link rel="stylesheet" type="text/css" href="http://cdn.jsdelivr.net/bootstrap.daterangepicker/2/daterangepicker.css" />
    
    <input type="text" name="daterange" value="01/01/2015 - 01/31/2015" />
    
    <script type="text/javascript">
    $(function() {
    $('input[name="daterange"]').daterangepicker({
     "locale": {
            "format": "MM/DD/YYYY",
            "separator": " - ",
            "applyLabel": "Применить",
            "cancelLabel": "Отмена",
            "fromLabel": "От",
            "toLabel": "До",
            "customRangeLabel": "Свой",
            "daysOfWeek": [
                "Вс",
                "Пн",
                "Вт",
                "Ср",
                "Чт",
                "Пт",
                "Сб"
            ],
            "monthNames": [
                "Январь",
                "Февраль",
                "Март",
                "Апрель",
                "Май",
                "Июнь",
                "Июль",
                "Август",
                "Сентябрь",
                "Октябрь",
                "Ноябрь",
                "Декабрь"
            ],
            "firstDay": 1
        }
    });});
    
    </script>

     

  • Альтернативная красивая функция alert для jQuery. User friendly alert message jQuery.

    1. alert = function(what){
    2. // if the element hasn't been appended to the body element
    3. if($("#alert_bar").length==0){
    4. // customize the bar with css
    5. var bar = $("<div/>").css({
    6. 'display':'none',
    7. 'position':'fixed',
    8. 'top':'0px',
    9. 'left':'0px',
    10. 'zIndex':'99950',
    11. 'width':'100%',
    12. 'margin':'0px',
    13. 'padding':'5px auto 9px auto',
    14. 'textAlign':'center',
    15. 'fontSize':'16px',
    16. 'background':'#fff',
    17. 'color':'red',
    18. 'borderBottom':'solid 1px #333'
    19. })
    20. bar.attr("id","alert_bar")
    21. $('body').prepend(bar)
    22. }
    23. // close button
    24. $("#alert_bar").html('<div style="text-align:right;font-size:10px;color:red"><span style="cursor:pointer" onclick="$(\'#alert_bar\').slideUp()"></span></div><div>'+what+'</div>')
    25. $("#alert_bar").slideDown();
    26. auto = 2000;
    27. window.setTimeout(function(){
    28. $("#alert_bar").slideUp()
    29. },auto);
    30. }
    alert = function(what){
        // if the element hasn't been appended to the body element
        if($("#alert_bar").length==0){
            // customize the bar with css
            var bar = $("<div/>").css({
                'display':'none',
                'position':'fixed',
                'top':'0px',
                'left':'0px',
                'zIndex':'99950',
                'width':'100%',
                'margin':'0px',
                'padding':'5px auto 9px auto',
                'textAlign':'center',
                'fontSize':'16px',
                'background':'#fff',
                'color':'red',
                'borderBottom':'solid 1px #333'
            })
            bar.attr("id","alert_bar")
            $('body').prepend(bar)
        }
        // close button
        $("#alert_bar").html('<div style="text-align:right;font-size:10px;color:red"><span style="cursor:pointer" onclick="$(\'#alert_bar\').slideUp()"></span></div><div>'+what+'</div>')
        $("#alert_bar").slideDown();
        
            
             auto = 2000;
            window.setTimeout(function(){
                $("#alert_bar").slideUp()
            },auto);
        
    }

     

  • Загрузка данных на сервер в асинхронном режиме Android Studio

    1. private String getPostDataString(HashMap<String, String> params) throws UnsupportedEncodingException {//функция формирования POST данных для отправки на сервер
    2. StringBuilder result = new StringBuilder();
    3. boolean first = true;
    4. for(Map.Entry<String, String> entry : params.entrySet()){
    5. if (first)
    6. first = false;
    7. else
    8. result.append("&");
    9. result.append(URLEncoder.encode(entry.getKey(), "UTF-8"));
    10. result.append("=");
    11. result.append(URLEncoder.encode(entry.getValue(), "UTF-8"));
    12. }
    13. return result.toString();//возвращаем сформированную строку для POST данных которые будут отправляться на сервер rateandshare.kz
    14. }
    15. //--------------------------------Загрузка изображения--------------------------------
    16. private class DownloadWebPageTask1 extends AsyncTask<ImageAndName, Void, String> {//загрузка изображения на сервер
    17. String attachmentName = "bitmap";//имя прикрепленных данных
    18. String attachmentFileName = "bitmap.jpg";//имя файла
    19. String crlf = "\r\n";//символ перехода на новую строку
    20. String twoHyphens = "--";//спец символы для создания POST запроса
    21. String boundary = "*****";//спец символы для создания POST запроса
    22. @Override
    23. protected String doInBackground(ImageAndName... params) {
    24. URL url = null;
    25. String response = "";
    26. String requestURL="android.gorodmoy.com";//адрес куда мы будем отправлять POST данные для обработки
    27. try {
    28. url = new URL(requestURL);//создаем объект url из строкового типа requestURL
    29. //сохранение данных в из картинки в массив
    30. Bitmap bmp = params[0].Bmp;//Получаем изображение которое мы сфотографировали
    31. String Name=params[0].Name;//Получаем имя изображения которое состоит из времени когда была сделагна фотография и идентификатора телефона
    32. attachmentFileName=Name+".jpg";//добавляем расширение файла
    33. ByteArrayOutputStream stream = new ByteArrayOutputStream();//создаем объект для передачи потоковых бинарных данных. Это используется для передачи изображений
    34. bmp.compress(Bitmap.CompressFormat.JPEG, 100, stream);//преобразуем наше изображение из BMP формата в JPEG
    35. byte[] byteArray = stream.toByteArray();//Преобразуем изображение в массив байтов
    36. //передача данных
    37. HttpURLConnection httpUrlConnection = null;//объявляем объект для создания интернет соединения
    38. httpUrlConnection = (HttpURLConnection) url.openConnection();// открываем соединени с сайтом
    39. httpUrlConnection.setUseCaches(false); // запрещаем использовать кэширования.
    40. httpUrlConnection.setDoOutput(true);//разрешаем использование POST запросов (в нашем случае для передачи изображения)
    41. httpUrlConnection.setRequestMethod("POST");//устанавливаем метод передачи данных
    42. httpUrlConnection.setRequestProperty("Connection", "Keep-Alive");// настройка соединения для повторного использования соединений HTTP
    43. httpUrlConnection.setRequestProperty("Cache-Control", "no-cache");//запрет на кэширование
    44. httpUrlConnection.setRequestProperty(
    45. "Content-Type", "multipart/form-data;boundary=" + this.boundary);//настройка POST данных для передачи данных частями. Используется при передачи больших объемов данных.
    46. DataOutputStream request = new DataOutputStream(
    47. httpUrlConnection.getOutputStream());//создаем объект для передачи данных
    48. request.writeBytes(this.twoHyphens + this.boundary + this.crlf);//начинаем запись POST данных по стандарту. Формируем POST запрос
    49. request.writeBytes("Content-Disposition: form-data; name=\"" +
    50. this.attachmentName + "\";filename=\"" +
    51. this.attachmentFileName + "\"" + this.crlf);
    52. request.writeBytes(this.crlf);
    53. request.write(byteArray);
    54. request.writeBytes(this.crlf);
    55. request.writeBytes(this.twoHyphens + this.boundary +
    56. this.twoHyphens + this.crlf);
    57. request.flush();
    58. request.close();//закрываем запрос
    59. InputStream responseStream = new
    60. BufferedInputStream(httpUrlConnection.getInputStream());//получаем ответ от сервера
    61. BufferedReader responseStreamReader =
    62. new BufferedReader(new InputStreamReader(responseStream));
    63. String line = "";
    64. StringBuilder stringBuilder = new StringBuilder();
    65. while ((line = responseStreamReader.readLine()) != null) {//читаем данные с сервера
    66. stringBuilder.append(line).append("\n");
    67. }
    68. responseStreamReader.close();
    69. response = stringBuilder.toString();
    70. responseStream.close();
    71. httpUrlConnection.disconnect();
    72. } catch (Exception e) {
    73. Toast toast = Toast.makeText(getApplicationContext(),// если произошли ошибки при передаче данных то мы выводим сообщение об ошибке
    74. "Произошла ошибка при загрузке отзыва на сайт. Попробуйте еще раз!", Toast.LENGTH_LONG);
    75. toast.show();
    76. e.printStackTrace();
    77. }
    78. return response;//возвращаем ответ сервера.
    79. }
    80. @Override
    81. protected void onPostExecute(String result) {//обрабатываем ответ сервера при успешной загрузке данных
    82. Toast toast = Toast.makeText(getApplicationContext(),// если произошли ошибки при передаче данных то мы выводим сообщение об ошибке
    83. "Спасибо вам за отзыв. Ваш отзыв успешно загружен на сайт rateandshare.kz!", Toast.LENGTH_LONG);
    84. toast.show();
    85. }
    86. }
    87. //--------------------------------Загрузка описания и кода--------------------------------
    88. private class ImageAndName // Создаем свой класс в котором будет находиться имя картинки и сама картинка. Это необходимо для того чтобы передать данные на сервер в одном объекте
    89. {
    90. String Name;
    91. Bitmap Bmp;
    92. }
    93. private class DownloadWebPageTask extends AsyncTask<String, Void, String> {//класс для передачи данных на сервер в асинхронном режиме.
    94. @Override
    95. protected String doInBackground(String... params) {//выполнение фонового асинхронного задания. В нашем случае используется для передачи данных на сервер
    96. URL url = null;//создаем объект в котором будет храниться адрес страницы на которую мы будем отправлять POST данные
    97. String response = "";//Переменная для хранения ответа сервера
    98. String requestURL=params[0];//Адрес в интернет на который мы будем передвать пост данные
    99. try {
    100. url = new URL(requestURL);//Создаем объект адреса в интернет
    101. HttpURLConnection conn = (HttpURLConnection) url.openConnection();//открываем соединение с веб страницей
    102. conn.setReadTimeout(15000);//устанавливаем таймаут ответа сервера в процессе чтения страницы на 15 секунд
    103. conn.setConnectTimeout(15000);//Устанавливаем таймаут времени соединения с сервером на 15 секунд
    104. conn.setRequestMethod("POST");//Задаем метод передачи данных POST
    105. conn.setDoInput(true);//Разрешаем передачу данных на сервер
    106. conn.setDoOutput(true);//Разрешаем прием данных с сервера
    107. OutputStream os = conn.getOutputStream();//Объявляем объет для передачи данных на сервер
    108. BufferedWriter writer = new BufferedWriter(//инициализируем объект для записи данных на сервер
    109. new OutputStreamWriter(os, "UTF-8"));
    110. HashMap<String, String> postDataParams;//Объявляем объект для хранения передаваемых данных
    111. postDataParams=new HashMap<String, String>();//инициализируем объект для хранения передаваемых данных
    112. //Add Key/Value pairs
    113. postDataParams.put("name", params[1]);//Задаем значения POST данных
    114. postDataParams.put("imei", params[2]);
    115. writer.write(getPostDataString(postDataParams));//Передаем данные на сервер
    116. writer.flush();//Сохранить данные из кэша
    117. writer.close();//завершить передачу данных на свервер
    118. os.close();//Завершить соединение с сервером
    119. int responseCode=conn.getResponseCode();//получить код отвечающий за результат соединения
    120. if (responseCode == HttpsURLConnection.HTTP_OK) {//если все прошло успешно
    121. String line;//переменная в которой будем записывать ответ сервера
    122. BufferedReader br=new BufferedReader(new InputStreamReader(conn.getInputStream()));//создаем объект чтения данных с сервера
    123. while ((line=br.readLine()) != null) {//читаем пока есть данные
    124. response+=line;
    125. }
    126. }
    127. else {
    128. response="";// в случае ошибки отвер пустой.
    129. }
    130. } catch (Exception e) {
    131. e.printStackTrace();//стандартный обработчик исключений
    132. }
    133. return response;//возвращаем ответ сервера
    134. }
    135. @Override
    136. protected void onPostExecute(String result) {
    137. //productDescription.setText(result);
    138. }
    139. }
    140. public void downloadWebpage() {
    141. //--------Загрузка текстовых данных--------------
    142. TelephonyManager telephonyManager = (TelephonyManager) getApplicationContext().getSystemService(Context.TELEPHONY_SERVICE);//создаем объект для получения imei кода который будем использовать как идентификатор пользователя
    143. String imei = telephonyManager.getDeviceId();//получаем imei код
    144. String S1;//объявляем переменные в которых будем хранить параметры передаваемые на сервер
    145. S1="Алексей Каверин";
    146. try {
    147. S1 = URLEncoder.encode(S1, "UTF-8");//кодируем данные для передачи на сервер
    148. } catch (Exception e) {
    149. // произошла ошибка.
    150. Toast toast = Toast.makeText(getApplicationContext(),// если произошли ошибки при передаче данных то мы выводим сообщение об ошибке
    151. "Возникла ошибка при передаче данных на сервер. Проверьте подключение к интернет и повторите отправку.", Toast.LENGTH_LONG);
    152. toast.show();
    153. }
    154. DownloadWebPageTask task = new DownloadWebPageTask();//создаем объект для загрузки данных на сервер
    155. task.execute(new String[]{"http://android.gorodmoy.com", S1, imei});//запускаем загружку данных на сервер
    156. //---------------Загрузка изображения
    157. // DownloadWebPageTask1 task1 = new DownloadWebPageTask1();//создаем объект для загурзки изображения на сервер
    158. // ImageAndName IMN = new ImageAndName();//создаем объект в котором будем хранить фото и имя файла
    159. //IMN.Bmp = myphoto;//записываем фото
    160. // IMN.Name = S5;//записываем имя файла
    161. // task1.execute(IMN);//запускаем передачу данныха на сервер.
    162. }
    163. //--------------------------------------------------------------------------------------------------------- загрузка производителя ссервера
    private String getPostDataString(HashMap<String, String> params) throws UnsupportedEncodingException {//функция формирования POST данных для отправки на сервер
          StringBuilder result = new StringBuilder();
          boolean first = true;
          for(Map.Entry<String, String> entry : params.entrySet()){
              if (first)
                  first = false;
              else
                  result.append("&");
    
              result.append(URLEncoder.encode(entry.getKey(), "UTF-8"));
              result.append("=");
              result.append(URLEncoder.encode(entry.getValue(), "UTF-8"));
          }
    
          return result.toString();//возвращаем сформированную строку для POST данных которые будут отправляться на сервер rateandshare.kz
      }
      //--------------------------------Загрузка изображения--------------------------------
      private class DownloadWebPageTask1 extends AsyncTask<ImageAndName, Void, String> {//загрузка изображения на сервер
          String attachmentName = "bitmap";//имя прикрепленных данных
          String attachmentFileName = "bitmap.jpg";//имя файла
          String crlf = "\r\n";//символ перехода на новую строку
          String twoHyphens = "--";//спец символы для создания POST запроса
          String boundary =  "*****";//спец символы для создания POST запроса
          @Override
          protected String doInBackground(ImageAndName... params) {
              URL url = null;
    
              String response = "";
              String requestURL="android.gorodmoy.com";//адрес куда мы будем отправлять POST данные для обработки
              try {
                  url = new URL(requestURL);//создаем объект url из строкового типа requestURL
                  //сохранение данных в из картинки в массив
                  Bitmap bmp = params[0].Bmp;//Получаем изображение которое мы сфотографировали
                  String Name=params[0].Name;//Получаем имя изображения которое состоит из времени когда была сделагна фотография и идентификатора телефона
                  attachmentFileName=Name+".jpg";//добавляем расширение файла
                  ByteArrayOutputStream stream = new ByteArrayOutputStream();//создаем объект для передачи потоковых бинарных данных. Это используется для передачи изображений
                  bmp.compress(Bitmap.CompressFormat.JPEG, 100, stream);//преобразуем наше изображение из BMP формата в JPEG
                  byte[] byteArray = stream.toByteArray();//Преобразуем изображение в массив байтов
                  //передача данных
                  HttpURLConnection httpUrlConnection = null;//объявляем объект для создания интернет соединения
    
                  httpUrlConnection = (HttpURLConnection) url.openConnection();// открываем соединени с сайтом
                  httpUrlConnection.setUseCaches(false); // запрещаем использовать кэширования.
                  httpUrlConnection.setDoOutput(true);//разрешаем использование POST запросов (в нашем случае для передачи изображения)
    
                  httpUrlConnection.setRequestMethod("POST");//устанавливаем метод передачи данных
                  httpUrlConnection.setRequestProperty("Connection", "Keep-Alive");// настройка соединения для повторного использования соединений HTTP
                  httpUrlConnection.setRequestProperty("Cache-Control", "no-cache");//запрет на кэширование
                  httpUrlConnection.setRequestProperty(
                          "Content-Type", "multipart/form-data;boundary=" + this.boundary);//настройка POST данных для передачи данных частями. Используется при передачи больших объемов данных.
    
                  DataOutputStream request = new DataOutputStream(
                          httpUrlConnection.getOutputStream());//создаем объект для передачи данных
    
                  request.writeBytes(this.twoHyphens + this.boundary + this.crlf);//начинаем запись POST данных по стандарту. Формируем POST запрос
                  request.writeBytes("Content-Disposition: form-data; name=\"" +
                          this.attachmentName + "\";filename=\"" +
                          this.attachmentFileName + "\"" + this.crlf);
                  request.writeBytes(this.crlf);
                  request.write(byteArray);
                  request.writeBytes(this.crlf);
                  request.writeBytes(this.twoHyphens + this.boundary +
                          this.twoHyphens + this.crlf);
                  request.flush();
                  request.close();//закрываем запрос
                  InputStream responseStream = new
                          BufferedInputStream(httpUrlConnection.getInputStream());//получаем ответ от сервера
    
                  BufferedReader responseStreamReader =
                          new BufferedReader(new InputStreamReader(responseStream));
    
                  String line = "";
                  StringBuilder stringBuilder = new StringBuilder();
    
                  while ((line = responseStreamReader.readLine()) != null) {//читаем данные с сервера
                      stringBuilder.append(line).append("\n");
                  }
                  responseStreamReader.close();
    
                  response = stringBuilder.toString();
                  responseStream.close();
                  httpUrlConnection.disconnect();
    
              } catch (Exception e) {
                  Toast toast = Toast.makeText(getApplicationContext(),// если произошли ошибки при передаче данных то мы выводим сообщение об ошибке
                          "Произошла ошибка при загрузке отзыва на сайт. Попробуйте еще раз!", Toast.LENGTH_LONG);
                  toast.show();
                  e.printStackTrace();
              }
    
              return response;//возвращаем ответ сервера.
          }
    
    
          @Override
          protected void onPostExecute(String result) {//обрабатываем ответ сервера при успешной загрузке данных
    
              Toast toast = Toast.makeText(getApplicationContext(),// если произошли ошибки при передаче данных то мы выводим сообщение об ошибке
                      "Спасибо вам за отзыв. Ваш отзыв успешно загружен на сайт rateandshare.kz!", Toast.LENGTH_LONG);
              toast.show();
    
    
          }
      }
      //--------------------------------Загрузка описания и кода--------------------------------
      private class ImageAndName // Создаем свой класс в котором будет находиться имя картинки и сама картинка. Это необходимо для того чтобы передать данные на сервер в одном объекте
      {
          String Name;
          Bitmap Bmp;
    
      }
      private class DownloadWebPageTask extends AsyncTask<String, Void, String> {//класс для передачи данных на сервер в асинхронном режиме.
          @Override
          protected String doInBackground(String... params) {//выполнение фонового асинхронного задания. В нашем случае используется для передачи данных на сервер
              URL url = null;//создаем объект в котором будет храниться адрес страницы на которую мы будем отправлять POST данные
    
              String response = "";//Переменная для хранения ответа сервера
              String requestURL=params[0];//Адрес в интернет на который мы будем передвать пост данные
              try {
                  url = new URL(requestURL);//Создаем объект адреса в интернет
    
                  HttpURLConnection conn = (HttpURLConnection) url.openConnection();//открываем соединение с веб страницей
                  conn.setReadTimeout(15000);//устанавливаем таймаут ответа сервера в процессе чтения страницы на 15 секунд
                  conn.setConnectTimeout(15000);//Устанавливаем таймаут времени соединения с сервером на 15 секунд
                  conn.setRequestMethod("POST");//Задаем метод передачи данных POST
                  conn.setDoInput(true);//Разрешаем передачу данных на сервер
                  conn.setDoOutput(true);//Разрешаем прием данных с сервера
    
    
                  OutputStream os = conn.getOutputStream();//Объявляем объет для передачи данных на сервер
                  BufferedWriter writer = new BufferedWriter(//инициализируем объект для записи данных на сервер
                          new OutputStreamWriter(os, "UTF-8"));
                  HashMap<String, String> postDataParams;//Объявляем объект для хранения передаваемых данных
                  postDataParams=new HashMap<String, String>();//инициализируем объект для хранения передаваемых данных
    
                  //Add Key/Value pairs
                  postDataParams.put("name", params[1]);//Задаем значения POST данных
                  postDataParams.put("imei", params[2]);
    
    
                  writer.write(getPostDataString(postDataParams));//Передаем данные на сервер
    
                  writer.flush();//Сохранить данные из кэша
                  writer.close();//завершить передачу данных на свервер
                  os.close();//Завершить соединение с сервером
                  int responseCode=conn.getResponseCode();//получить код отвечающий за результат соединения
    
                  if (responseCode == HttpsURLConnection.HTTP_OK) {//если все прошло успешно
                      String line;//переменная в которой будем записывать ответ сервера
                      BufferedReader br=new BufferedReader(new InputStreamReader(conn.getInputStream()));//создаем объект чтения данных с сервера
                      while ((line=br.readLine()) != null) {//читаем пока есть данные
                          response+=line;
                      }
                  }
                  else {
                      response="";// в случае ошибки отвер пустой.
    
                  }
              } catch (Exception e) {
                  e.printStackTrace();//стандартный обработчик исключений
              }
    
              return response;//возвращаем ответ сервера
          }
    
    
          @Override
          protected void onPostExecute(String result) {
    
              //productDescription.setText(result);
          }
      }
    
      public void downloadWebpage() {
    
          //--------Загрузка текстовых данных--------------
          TelephonyManager telephonyManager = (TelephonyManager) getApplicationContext().getSystemService(Context.TELEPHONY_SERVICE);//создаем объект для получения imei кода который будем использовать как идентификатор пользователя
          String imei = telephonyManager.getDeviceId();//получаем imei код
    
          String S1;//объявляем переменные в которых будем хранить параметры передаваемые на сервер
          S1="Алексей Каверин";
          try {
    
              S1 = URLEncoder.encode(S1, "UTF-8");//кодируем данные для передачи на сервер
    
          } catch (Exception e) {
              // произошла ошибка.
              Toast toast = Toast.makeText(getApplicationContext(),// если произошли ошибки при передаче данных то мы выводим сообщение об ошибке
                      "Возникла ошибка при передаче данных на сервер. Проверьте подключение к интернет и повторите отправку.", Toast.LENGTH_LONG);
              toast.show();
          }
    
    
    
          DownloadWebPageTask task = new DownloadWebPageTask();//создаем объект для загрузки данных на сервер
    
    
          task.execute(new String[]{"http://android.gorodmoy.com", S1, imei});//запускаем загружку данных на сервер
    
          //---------------Загрузка изображения
        //  DownloadWebPageTask1 task1 = new DownloadWebPageTask1();//создаем объект для загурзки изображения на сервер
         // ImageAndName IMN = new ImageAndName();//создаем объект в котором будем хранить фото и имя файла
          //IMN.Bmp = myphoto;//записываем фото
      //    IMN.Name = S5;//записываем имя файла
        //  task1.execute(IMN);//запускаем передачу данныха на сервер.
    
    
    
    
      }
      //--------------------------------------------------------------------------------------------------------- загрузка производителя ссервера

     

  • Android studio Проект по работе с картой. Геолокация.

    1. package com.example.admin.myapplication;
    2. import android.Manifest;
    3. import android.content.DialogInterface;
    4. import android.content.pm.PackageManager;
    5. import android.support.v7.app.AppCompatActivity;
    6. import android.os.Bundle;
    7. import com.google.android.gms.maps.CameraUpdateFactory;
    8. import com.google.android.gms.maps.GoogleMap;
    9. import com.google.android.gms.maps.MapView;
    10. import com.google.android.gms.maps.MapsInitializer;
    11. import com.google.android.gms.maps.OnMapReadyCallback;
    12. import com.google.android.gms.maps.model.CameraPosition;
    13. import com.google.android.gms.maps.model.LatLng;
    14. public class MainActivity extends AppCompatActivity {
    15. GoogleMap googleMap;//объект гугл карты
    16. MapView mMapView;//объект для отображения карты
    17. static double TARGET_LATITUDE = 49.8240877;//координаты на карте
    18. static double TARGET_LONGITUDE = 72.8887742;
    19. @Override
    20. protected void onCreate(Bundle savedInstanceState) {
    21. super.onCreate(savedInstanceState);
    22. setContentView(R.layout.activity_main);
    23. mMapView = (MapView) findViewById(R.id.mapView);//получаем карту
    24. mMapView.onCreate(savedInstanceState);//создаем карут
    25. mMapView.onResume(); // необходимо для отображения карты
    26. try {
    27. MapsInitializer.initialize(this.getApplicationContext());//инициализируем карту
    28. } catch (Exception e) {
    29. e.printStackTrace();
    30. }
    31. mMapView.getMapAsync(new OnMapReadyCallback() {
    32. @Override
    33. public void onMapReady(GoogleMap mMap) {//получаем карту в асинхронном режиме
    34. googleMap = mMap;
    35. // показать кнопку перемещения в моую локацию
    36. int status = getPackageManager().checkPermission(Manifest.permission.ACCESS_COARSE_LOCATION,//проверка есть ли у приложения доступ к геоданным
    37. getPackageName());
    38. if (status != PackageManager.PERMISSION_GRANTED)return ;//если нет доступа к геоданным то мы возвращаем null что означает локацию определить невозможно
    39. googleMap.setMyLocationEnabled(true);
    40. // отображаем маркер на карте по умолчанию это Сидней
    41. LatLng sydney = new LatLng(TARGET_LATITUDE, TARGET_LONGITUDE);
    42. // для автоматического масштабирования карты и управления камерой
    43. CameraPosition cameraPosition = new CameraPosition.Builder().target(sydney).zoom(12).build();
    44. googleMap.animateCamera(CameraUpdateFactory.newCameraPosition(cameraPosition));
    45. }
    46. });
    47. }
    48. }
    package com.example.admin.myapplication;
    
    import android.Manifest;
    
    import android.content.DialogInterface;
    import android.content.pm.PackageManager;
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    
    import com.google.android.gms.maps.CameraUpdateFactory;
    import com.google.android.gms.maps.GoogleMap;
    import com.google.android.gms.maps.MapView;
    import com.google.android.gms.maps.MapsInitializer;
    import com.google.android.gms.maps.OnMapReadyCallback;
    import com.google.android.gms.maps.model.CameraPosition;
    import com.google.android.gms.maps.model.LatLng;
    
    public class MainActivity extends AppCompatActivity {
    
        GoogleMap googleMap;//объект гугл карты
        MapView mMapView;//объект для отображения карты
    
        static double TARGET_LATITUDE = 49.8240877;//координаты на карте
        static double TARGET_LONGITUDE = 72.8887742;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            mMapView = (MapView) findViewById(R.id.mapView);//получаем карту
            mMapView.onCreate(savedInstanceState);//создаем карут
    
            mMapView.onResume(); // необходимо для отображения карты
    
            try {
                MapsInitializer.initialize(this.getApplicationContext());//инициализируем карту
            } catch (Exception e) {
                e.printStackTrace();
            }
    
            mMapView.getMapAsync(new OnMapReadyCallback() {
                @Override
                public void onMapReady(GoogleMap mMap) {//получаем карту в асинхронном режиме
                    googleMap = mMap;
    
                    // показать кнопку перемещения в моую локацию
                    int status = getPackageManager().checkPermission(Manifest.permission.ACCESS_COARSE_LOCATION,//проверка есть ли у приложения доступ к геоданным
                            getPackageName());
                    if (status != PackageManager.PERMISSION_GRANTED)return ;//если нет доступа к геоданным то мы возвращаем null что означает локацию определить невозможно
                    googleMap.setMyLocationEnabled(true);
    
                    // отображаем маркер на карте по умолчанию это Сидней
                    LatLng sydney = new LatLng(TARGET_LATITUDE,   TARGET_LONGITUDE);
    
    
                    // для автоматического масштабирования карты и управления камерой
                    CameraPosition cameraPosition = new CameraPosition.Builder().target(sydney).zoom(12).build();
                    googleMap.animateCamera(CameraUpdateFactory.newCameraPosition(cameraPosition));
                }
            });
    
        }
    }

     

    Манифест

    1. <?xml version="1.0" encoding="utf-8"?>
    2. <manifest xmlns:android="http://schemas.android.com/apk/res/android"
    3. package="com.example.admin.myapplication">
    4. <application
    5. android:allowBackup="true"
    6. android:icon="@mipmap/ic_launcher"
    7. android:label="@string/app_name"
    8. android:supportsRtl="true"
    9. android:theme="@style/AppTheme">
    10. <activity android:name=".MainActivity">
    11. <intent-filter>
    12. <action android:name="android.intent.action.MAIN" />
    13. <category android:name="android.intent.category.LAUNCHER" />
    14. </intent-filter>
    15. </activity>
    16. <meta-data
    17. android:name="com.google.android.geo.API_KEY"
    18. android:value="AIzaSyB9W_3A70USW6tb4Rlhfq0BaNSho30Zse8"/>
    19. </application>
    20. <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>
    21. <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"></uses-permission>
    22. <uses-permission android:name="android.permission.INTERNET"></uses-permission>
    23. </manifest>
    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="com.example.admin.myapplication">
    
        <application
            android:allowBackup="true"
            android:icon="@mipmap/ic_launcher"
            android:label="@string/app_name"
            android:supportsRtl="true"
            android:theme="@style/AppTheme">
            <activity android:name=".MainActivity">
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
    
                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
            </activity>
    
            <meta-data
                android:name="com.google.android.geo.API_KEY"
                android:value="AIzaSyB9W_3A70USW6tb4Rlhfq0BaNSho30Zse8"/>
    
        </application>
        <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>
        <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"></uses-permission>
        <uses-permission android:name="android.permission.INTERNET"></uses-permission>
    
    
    </manifest>

    Дизайн

    1. <?xml version="1.0" encoding="utf-8"?>
    2. <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    3. xmlns:tools="http://schemas.android.com/tools"
    4. android:id="@+id/activity_main"
    5. android:layout_width="match_parent"
    6. android:layout_height="match_parent"
    7. android:paddingBottom="@dimen/activity_vertical_margin"
    8. android:paddingLeft="@dimen/activity_horizontal_margin"
    9. android:paddingRight="@dimen/activity_horizontal_margin"
    10. android:paddingTop="@dimen/activity_vertical_margin"
    11. tools:context="com.example.admin.myapplication.MainActivity">
    12. <com.google.android.gms.maps.MapView
    13. android:layout_width="match_parent"
    14. android:layout_height="match_parent"
    15. android:id="@+id/mapView" />
    16. </RelativeLayout>
    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:id="@+id/activity_main"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:paddingBottom="@dimen/activity_vertical_margin"
        android:paddingLeft="@dimen/activity_horizontal_margin"
        android:paddingRight="@dimen/activity_horizontal_margin"
        android:paddingTop="@dimen/activity_vertical_margin"
        tools:context="com.example.admin.myapplication.MainActivity">
    
    
    
        <com.google.android.gms.maps.MapView
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:id="@+id/mapView" />
    </RelativeLayout>

     

  • Куки сессии POST GET и Ajax в MVC. Урок 6. MVC ASP.NET в Караганде.

    Куки сессии POST GET и Ajax в MVC. Урок 6. MVC ASP.NET в Караганде.

    Теоретическая часть.

    Контроллеры часто нуждаются в доступе к данным из входящего запроса, таким как значения строки запроса, значения формы и параметры, извлеченные из URL системой маршрутизации. Существуют три основных способа доступа к таким данным:

    • извлечение данных из набора объектов контекста;
    • передача данных в качестве параметров методу действия;
    • явное обращение к средству привязки моделей инфраструктуры.

    В этой статье мы рассмотрим подходы к получению исходных данных для методов действий, концентрируя основное внимание на объектах контекста и параметрах методов действий.

    Получение данных из объектов контекста

    Когда вы создаете контроллер путем его наследования от базового класса Controller, то получаете в свое распоряжение набор удобных свойств для доступа к информации, касающейся запроса. К таким свойствам относятся Request, Response, RouteData, HttpContext и Server. Каждое перечисленное свойство отвечает за конкретный аспект запроса. Мы называем их удобными свойствами, поскольку каждое из них извлекает определенный тип данных из экземпляра ControllerContext для запроса (который доступен через свойство Controller.ControllerContext).

    Наиболее часто используемые объекты контекста и свойства описаны в таблице ниже:

    Часто используемые объекты контекста ControllerContext и свойства
    Свойство Тип Описание
    Request.QueryString NameValueCollection Переменные GET, отправленные с этим запросом
    Request.Form NameValueCollection Переменные POST, отправленные с этим запросом
    Request.Cookies HttpCookieCollection Cookie-наборы, отправленные браузером с этим запросом
    Request.HttpMethod string Метод HTTP (команда наподобие GET или POST), используемый для этого запроса
    Request.Headers NameValueCollection Полный набор заголовков HTTP, отправленных с этим запросом
    Request.Url Uri Элемент RouteTable.Routes, выбранный для этого запроса
    Request.UserHostAddress string IP-адрес пользователя, сделавшего этот запрос
    RouteData.Route RouteBase Элемент Routetable.Routes, выбранный для этого запроса
    RouteData.Values RouteValueDictionary Активные параметры маршрута (либо извлеченные из URL, либо стандартные значения)
    HttpContext.Application HttpApplicationStateBase Хранилище состояния приложения
    HttpContext.Cache Cache Хранилище кеша приложения
    HttpContext.Items IDictionary Хранилище состояния для текущего запроса
    HttpContext.Session HttpSessionStateBase Хранилище состояния для сеанса посетителя
    User IPrincipal Аутентификационная информация о вошедшем пользователе
    TempData TempDataDictionary Временные элементы данных, сохраненные для текущего пользователя

    Отдельные свойства, которые здесь упоминались — Request, HttpContext и т.д. — предоставляют объекты контекста. Здесь они подробно не рассматриваются (поскольку являются частью платформы ASP.NET), но следует знать, что такие объекты предоставляют доступ к полезной информации и средствам, и более подробно вы можете прочитать о них в разделе, посвященном

    Метод действия может использовать любой из этих объектов контекста для получения информации о запросе, как демонстрируется в примере ниже:

     

    Давайте попробуем получить данные описанные выше. Для этого нам понадобиться создать MVC проект.

    В HomeController вывести данные из объектов контекста.

    // Получить доступ к разнообразным свойствам из объектов контекста
    ViewBag.userName = User.Identity.Name;
    ViewBag.serverName = Server.MachineName;
    ViewBag.clientIP = Request.UserHostAddress;
    ViewBag.dateStamp = HttpContext.Timestamp;

    // Параметры адресной строки
    ViewBag.QueryString = Request.QueryString;
    ViewBag.myURL = Request.Url.AbsoluteUri;

    Вывести их в представлении Index.

    <h1>Параметры проекта</h1>
    Имя пользователя:
    @ViewBag.userName
    <br/>
    Имя сервера:
    @ViewBag.serverName
    <br />
    IP адрес:
    @ViewBag.clientIP
    <br />
    dateStamp:
    @ViewBag.dateStamp
    <br />
    QueryString:
    @ViewBag.QueryString
    <br>
    URL:
    @ViewBag.myURL
    <br />

    Зарегистрировать пользователя и посмотреть отобразится ли его имя в параметрах контекста.

     

    Давайте получим Get параметры из адресной строки.

    public ActionResult Index(string city)

    Добавим в индекс метод  параметр string city

    Изменим адресную строку и добавим GET параметр

    http://localhost:3509/Home/Index?city=city

    Выведем его в Index представлении через ViewBag

    Создадим форму и получим пост параметры и отобразим их.

    1. <form method='post'>
    2. <div class="form-group">
    3. <label for="email">Email address:</label>
    4. <input type="email" name='email' class="form-control" id="email">
    5. </div>
    6. <div class="form-group">
    7. <label for="pwd">Password:</label>
    8. <input type="password" name='password' class="form-control" id="pwd">
    9. </div>
    10. <div class="checkbox">
    11. <label><input type="checkbox"> Remember me</label>
    12. </div>
    13. <button type="submit" class="btn btn-default">Submit</button>
    14. </form>
    <form method='post'>
      <div class="form-group">
        <label for="email">Email address:</label>
        <input type="email" name='email' class="form-control" id="email">
      </div>
      <div class="form-group">
        <label for="pwd">Password:</label>
        <input type="password" name='password' class="form-control" id="pwd">
      </div>
      <div class="checkbox">
        <label><input type="checkbox"> Remember me</label>
      </div>
      <button type="submit" class="btn btn-default">Submit</button>
    </form>

    В контроллере добавьте метод для обработки post данных

    1. [HttpPost]
    2. public ActionResult Index()
    3. {
    4. // Получить доступ к разнообразным свойствам из объектов контекста
    5. ViewBag.email = Request.Form["email"];
    6. ViewBag.password = Request.Form["password"];
    7. return View();
    8. }
    [HttpPost]
            public ActionResult Index()
            {
                // Получить доступ к разнообразным свойствам из объектов контекста
                ViewBag.email = Request.Form["email"];
                ViewBag.password = Request.Form["password"];
                
                return View();
            }

    Отобразите в представлении пароль и емайл

    1. email:
    2. @ViewBag.email
    3. <br>
    4. password:
    5. @ViewBag.password
    email:
    @ViewBag.email
    <br>
    password:
    @ViewBag.password

    Работа с Cookie

    Задать значение куки

    var userCookie =new HttpCookie(«user», «Алексей»);

    userCookie.Expires.AddDays(365);

    HttpContext.Response.Cookies.Add(userCookie);

    Стереть куки

    1. var user = new HttpCookie("user")
    2. {
    3. Expires = DateTime.Now.AddDays(-1),
    4. Value = null
    5. };
    6. Response.Cookies.Add(user);
    var user = new HttpCookie("user")
                    {
                        Expires = DateTime.Now.AddDays(-1),
                        Value = null
                    };
                Response.Cookies.Add(user);

    ViewBag.CookieEmail = Request.Cookies[«email»].Value;

    Отобразите значение куки email.

    Работа с сессиями

    Session[«name»] = «Tom»;

    Создание AJAX формы в ASP.NET

    Казалось бы, зачем в данном случае Ajax, если мы можем, например, в форму вводить имя автора и отправлять на сервер, а сервер в качестве ответа возвратит нам страницу с нужным результатом. Но, как выше уже говорилось, AJAX поможет нам избежать перезагрузки всей страницы и выполнить загрузку данных в асинхронном режиме, что несомненно повышает производительность приложения.

    Установим AJAX

    Install-Package Microsoft.jQuery.Unobtrusive.Ajax

    Добавим AJAX форму.

    1. <div class="jumbotron">
    2. <h1>Параметры проекта</h1>
    3. @using (Ajax.BeginForm("myAJAX", new AjaxOptions { UpdateTargetId = "results" }))
    4. {
    5. <input type="text" name="name" />
    6. <input type="submit" value="Поиск" />
    7. }
    8. <div id="results"></div>
    9. </div>
    10. @Scripts.Render("~/scripts/jquery-1.10.2.min.js")
    11. @Scripts.Render("~/scripts/jquery.unobtrusive-ajax.min.js")
    <div class="jumbotron">
        <h1>Параметры проекта</h1>
        @using (Ajax.BeginForm("myAJAX", new AjaxOptions { UpdateTargetId = "results" }))
        {
            <input type="text" name="name" />
            <input type="submit" value="Поиск" />
        }
        <div id="results"></div>
    </div>
    @Scripts.Render("~/scripts/jquery-1.10.2.min.js")
    @Scripts.Render("~/scripts/jquery.unobtrusive-ajax.min.js")

    Добавим код для обработки AJAX в Home контроллер

    1. [HttpPost]
    2. public ActionResult myAJAX(string name)
    3. {
    4. ViewBag.Message = name;
    5. return PartialView("");
    6. }
    [HttpPost]
          public ActionResult myAJAX(string name)
          {
              ViewBag.Message = name;
              return PartialView("");
          }

    Добавим частичное представление для отображения результатов AJAX

    Протестируем форму.

  • Курсы технического обслуживания. Курсы по установке и настройке Windows. Диагностика компьютера. Урок 3

    Курсы технического обслуживания. Курсы по установке и настройке Windows. Диагностика компьютера. Урок 3

    Программа урока.

    1. Создание загрузочной флешки используя Media Creation Tool. Установка и настройка Windows 10.
    2. Диагностика температуры процессора используя Core-temp
    3. Диагностика процессора использования Intel Cpu Test утилиты
    4. Диагностика компьютера используя CPU-Z обзор понятия сокет и чипсет.
    5. Диагностика графического адаптера используя GPU Z
    6. Диагностика производительности системы используя Cinebench.

     

     

  • Программирование макросов в EXCEL используя Visual Basic for Applications в Караганде. Программа курса. Обучающий центр IKurs.kz

    Программирование макросов в EXCEL используя Visual Basic for Applications в Караганде. Программа курса. Обучающий центр IKurs.kz

    В нашем центре проводятся индивидуальные занятия по обучению как программировать макросы в EXCEL.

    VBA (Visual basic for applicaions)  — инструмент позволяющий создавать макросы и автоматизировать рутинные операции в таблицах Excel.

     

    Курс углубленного изучения Excel в Караганде.

    Программа курса по написанию макросов в Excel

    1. Запись собственных макросов и их изучение. Запись данных в ячейки.
    2. Обращение к рабочим листам и книгам. Навигация по ячейкам. Относительная и абсолютная адресация.
    3. Переменные, операции с ними и операторы сравнения.
    4. Массивы и операции с ними.
    5. Условия If, Select Case.
    6. Циклы For, While, Foreach.
    7. Простые алгоритмы поиска и сортировки.
    8. Собственные функции и процедуры.
    9. Строковые функции.
    10. Выпадающие списки.
    11. Пользовательские формы.
    12. События в Excel.

     

  • Бланк технического обслуживания компьютера. Замена термопасты. Курсы обслуживания компьютеров в Караганде. Урок 2.

    Бланк технического обслуживания компьютера. Замена термопасты. Курсы обслуживания компьютеров в Караганде. Урок 2.

    Инструкция по техобслуживанию компьютера

     

    ФИО_______________________                                                     Дата заполнения ____________

     

    Модель материнской платы :_________________________

    Серийный номер материнской платы: _________________________

     

    Тест на работоспособность перед техническим обслуживанием.

    Включить компьютер  
    Войти в БИОС  
    Загрузить заводские настройки  
    Оставить на 15 минут в рабочем состоянии  
    Записать температуру материнской платы  
    Записать температуру процессора  

     

    Визуальный осмотр.

    Следы перегрева на разъемах  
    Налет пыли грязи на плате (при наличии очистить спиртом)  
    Наличие окисления на разъемах  
    Следы пайки описать если есть  
    Сколы на разъемах деталях  
    Повреждения лака. Царапины на плате  
    Вздутые конденсаторы. Перечислить если есть.  

     

    Замена термопасты

    Отсоединить разъем вентилятора  
    Снять радиатор  
    Очистить старую термопасту  
    Есть ли царапины на радиаторе?  
    Нанести свежую термопасту  
    Установить радиатор  
    Закрепить радиатор  
    Установить вентилятор и подсоединить питание  

     

     

     

     

    Тест на работоспособность после технического обслуживания.

    Включить компьютер  
    Войти в БИОС  
    Загрузить заводские настройки  
    Оставить на 15 минут в рабочем состоянии  
    Записать температуру материнской платы  
    Записать температуру процессора  

     

     

    Описание состояния платы и дефектов.

    Заключение:

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    Подпись __________

    Скачать бланк проверки компьютера.

    Бланк проверки компьютера.

  • Загрузка файлов на сервер. Создание галереи. Постраничный вывод в MVC ASP.NET. Курсы в Караганде. Урок 5

    Загрузка файлов на сервер. Создание галереи. Постраничный вывод в MVC ASP.NET. Курсы в Караганде. Урок 5

    1. Создадим пустое приложение MVC.
    2. Создадим HomeControler
    3. Добавим представление Index в Views->Home
    4. Создадим папку Files в которую будем загружать файлы.
    5. Добавим форму для загрузки файлов в созданное Index представление.
      1. @{
      2. ViewBag.Title = "Index";
      3. }
      4. <h3>Выберите файл для загрузки</h3>
      5. @using (Html.BeginForm("Upload", "Home", FormMethod.Post, new { enctype = "multipart/form-data" }))
      6. {
      7. <input type="file" name="upload" /><br>
      8. <input type="submit" value="Загрузить" />
      9. }
      @{
          ViewBag.Title = "Index";
      }
      
      <h3>Выберите файл для загрузки</h3>
      @using (Html.BeginForm("Upload", "Home", FormMethod.Post, new { enctype = "multipart/form-data" }))
      {
          <input type="file" name="upload" /><br>
          <input type="submit" value="Загрузить" />
      }
    6.  Добавим код контроллера для загрузки файлов в папку Files
      1. public class HomeController : Controller
      2. {
      3. // GET: Home
      4. [HttpGet]
      5. public ActionResult Index()
      6. {
      7. return View();
      8. }
      9. [HttpPost]
      10. public ActionResult Upload(HttpPostedFileBase upload)
      11. {
      12. if (upload != null)
      13. {
      14. // получаем имя файла
      15. string fileName = System.IO.Path.GetFileName(upload.FileName);
      16. // сохраняем файл в папку Files в проекте
      17. upload.SaveAs(Server.MapPath("~/Files/" + fileName));
      18. }
      19. return RedirectToAction("Index");
      20. }
      21. }
      public class HomeController : Controller
       {
           // GET: Home
           [HttpGet]
           public ActionResult Index()
           {
               return View();
           }
      
           [HttpPost]
           public ActionResult Upload(HttpPostedFileBase upload)
           {
               if (upload != null)
               {
                   // получаем имя файла
                   string fileName = System.IO.Path.GetFileName(upload.FileName);
                   // сохраняем файл в папку Files в проекте
                   upload.SaveAs(Server.MapPath("~/Files/" + fileName));
               }
               return RedirectToAction("Index");
           }
       }
    7.  Добавим код для отображения наших фотографий.
      Получим список файлов из директории в контроллере и положим его во viewbag

      1. ViewBag.Files = Directory.GetFiles(Server.MapPath("/Files/" ));
      ViewBag.Files = Directory.GetFiles(Server.MapPath("/Files/" ));

      Добавим код отображения в представлении под формой загрузки файлов.

      1. <div class="row">
      2. @foreach (var File in ViewBag.Files)
      3. {
      4. <div class="col-md-4">
      5. <div class="thumbnail">
      6. <div style="background-image:url('@Url.Content("~/Files/" + System.IO.Path.GetFileName(File))'); width:100%;height:200px;background-size:cover;background-position:center;">
      7. </div>
      8. </div>
      9. </div>
      10. }
      11. </div>
      <div class="row">
      
          @foreach (var File in ViewBag.Files)
          {
              <div class="col-md-4">
                  <div class="thumbnail">
                      <div style="background-image:url('@Url.Content("~/Files/" + System.IO.Path.GetFileName(File))'); width:100%;height:200px;background-size:cover;background-position:center;">
      
                      </div>
                  </div>
              </div>
      
          }
       </div>

       

    8. Протестируем нашу галерею.
    9. Добавим просмотр картинок в модальном окне. Конечный код
      1. @{
      2. ViewBag.Title = "Index";
      3. }
      4. <head>
      5. <link href="~/Content/bootstrap.css" rel="stylesheet" />
      6. <script src="~/Scripts/jquery-1.10.2.js"></script>
      7. <script src="~/Scripts/bootstrap.js"></script>
      8. <style>
      9. .modal-dialog {
      10. width: 70%;
      11. height: 100%;
      12. margin: auto;
      13. }
      14. .modal-body{
      15. width: 100%;
      16. height: 100%;
      17. margin: 0;
      18. padding: 0;
      19. }
      20. .modal-content {
      21. min-height: 100%;
      22. border-radius: 0;
      23. }
      24. </style>
      25. <script>
      26. $(document).ready(function () {
      27. $(".col-md-4").mouseenter(function () {
      28. $("#modal_mimg").attr("src", $(this).attr("data-mimg"));
      29. });
      30. });
      31. </script>
      32. </head>
      33. <body>
      34. <div class="container">
      35. <h3>Выберите файл для загрузки</h3>
      36. <p>
      37. @ViewBag.File
      38. </p>
      39. <p>
      40. @ViewBag.File1
      41. </p>
      42. @using (Html.BeginForm("Upload", "Home", FormMethod.Post, new { enctype = "multipart/form-data" }))
      43. {
      44. <input type="file" name="upload" /><br>
      45. <input type="submit" value="Загрузить" />
      46. }
      47. <div class="row">
      48. @foreach (var File in ViewBag.Files)
      49. {
      50. <div class="col-md-4" data-toggle="modal" data-target="#myModal" style="cursor: pointer;" data-mimg="@Url.Content("~/Files/" + System.IO.Path.GetFileName(File))">
      51. <div class="thumbnail">
      52. <div style="background-image:url('@Url.Content("~/Files/" + System.IO.Path.GetFileName(File))'); width:100%;height:200px;background-size:cover;background-position:center;">
      53. </div>
      54. </div>
      55. </div>
      56. }
      57. </div>
      58. <!-- Trigger the modal with a button -->
      59. <!-- Modal -->
      60. <div id="myModal" class="modal fade" role="dialog" >
      61. <div class="modal-dialog ">
      62. <!-- Modal content-->
      63. <div class="modal-content">
      64. <div class="modal-header">
      65. <button type="button" class="close" data-dismiss="modal">&times;</button>
      66. <h4 class="modal-title">Просмотр изображения в полном размере</h4>
      67. </div>
      68. <div class="modal-body">
      69. <img id="modal_mimg" src="" style="width:100%;max-height:100%">
      70. </div>
      71. <div class="modal-footer">
      72. <button type="button" class="btn btn-default" data-dismiss="modal">Закрыть</button>
      73. </div>
      74. </div>
      75. </div>
      76. </div>
      77. </div>
      78. </body>
      @{
          ViewBag.Title = "Index";
      }
      <head>
          <link href="~/Content/bootstrap.css" rel="stylesheet" />
          <script src="~/Scripts/jquery-1.10.2.js"></script>
          <script src="~/Scripts/bootstrap.js"></script>
          <style>
              .modal-dialog {
                width: 70%;
                height: 100%;
                margin: auto;
                
              }
               .modal-body{
                width: 100%;
                height: 100%;
                margin: 0;
                padding: 0;
              }
      
              .modal-content {
                
                min-height: 100%;
                border-radius: 0;
              }
          </style>
          <script>
              $(document).ready(function () {
                  $(".col-md-4").mouseenter(function () {
                      $("#modal_mimg").attr("src", $(this).attr("data-mimg"));
                      
                  });
              });
          </script> 
      </head>
      <body>
          <div class="container">
          <h3>Выберите файл для загрузки</h3>
          <p>
              @ViewBag.File
          </p>
          <p>
              @ViewBag.File1
          </p>
          @using (Html.BeginForm("Upload", "Home", FormMethod.Post, new { enctype = "multipart/form-data" }))
          {
              <input type="file" name="upload" /><br>
              <input type="submit" value="Загрузить" />
          }
          <div class="row">
      
              @foreach (var File in ViewBag.Files)
              {
                  <div class="col-md-4" data-toggle="modal" data-target="#myModal" style="cursor: pointer;" data-mimg="@Url.Content("~/Files/" + System.IO.Path.GetFileName(File))">
                      <div class="thumbnail">
                          <div style="background-image:url('@Url.Content("~/Files/" + System.IO.Path.GetFileName(File))'); width:100%;height:200px;background-size:cover;background-position:center;">
      
                          </div>
                      </div>
                  </div>
      
              }
           </div>
              <!-- Trigger the modal with a button -->
          
      
              <!-- Modal -->
              <div id="myModal" class="modal  fade" role="dialog" >
                  <div class="modal-dialog ">
      
                      <!-- Modal content-->
                      <div class="modal-content">
                          <div class="modal-header">
                              <button type="button" class="close" data-dismiss="modal">&times;</button>
                              <h4 class="modal-title">Просмотр изображения в полном размере</h4>
                          </div>
                          <div class="modal-body">
                              <img id="modal_mimg" src="" style="width:100%;max-height:100%">
                          </div>
                          <div class="modal-footer">
                              <button type="button" class="btn btn-default" data-dismiss="modal">Закрыть</button>
                          </div>
                      </div>
      
                  </div>
              </div>
           </div>
      </body>

       

      1. using System;
      2. using System.Collections.Generic;
      3. using System.IO;
      4. using System.Linq;
      5. using System.Web;
      6. using System.Web.Mvc;
      7. namespace WebApplication21.Controllers
      8. {
      9. public class HomeController : Controller
      10. {
      11. // GET: Home
      12. [HttpGet]
      13. public ActionResult Index()
      14. {
      15. ViewBag.Files = Directory.GetFiles(Server.MapPath("/Files/"));
      16. return View();
      17. }
      18. [HttpPost]
      19. public ActionResult Upload(HttpPostedFileBase upload)
      20. {
      21. if (upload != null)
      22. {
      23. // получаем имя файла
      24. string fileName = System.IO.Path.GetFileName(upload.FileName);
      25. // сохраняем файл в папку Files в проекте
      26. if (System.IO.File.Exists((Server.MapPath("/Files/" + fileName))))
      27. {
      28. ViewBag.File = "Файл с таким именем уже существует " + fileName;
      29. }
      30. else
      31. {
      32. upload.SaveAs(Server.MapPath("/Files/" + fileName));
      33. ViewBag.File = "Файл успешно загружен " + fileName;
      34. }
      35. }
      36. ViewBag.Files = Directory.GetFiles(Server.MapPath("/Files/" ));
      37. return View("Index");
      38. // return RedirectToAction("Index?file="+);
      39. }
      40. }
      41. }
      using System;
      using System.Collections.Generic;
      using System.IO;
      using System.Linq;
      using System.Web;
      using System.Web.Mvc;
      
      
      namespace WebApplication21.Controllers
      {
          public class HomeController : Controller
          {
              // GET: Home
              [HttpGet]
              public ActionResult Index()
              {
                  ViewBag.Files = Directory.GetFiles(Server.MapPath("/Files/"));
                  return View();
              }
      
              [HttpPost]
              public ActionResult Upload(HttpPostedFileBase upload)
              {
                  if (upload != null)
                  {
                      // получаем имя файла
                      string fileName = System.IO.Path.GetFileName(upload.FileName);
                      // сохраняем файл в папку Files в проекте
      
                      if (System.IO.File.Exists((Server.MapPath("/Files/" + fileName))))
                      {
                          ViewBag.File = "Файл с таким именем уже существует " + fileName;
                      }
                      else
                      {
                          upload.SaveAs(Server.MapPath("/Files/" + fileName));
                          ViewBag.File = "Файл успешно загружен " + fileName;
                      }
                  }
                  ViewBag.Files = Directory.GetFiles(Server.MapPath("/Files/" ));
      
      
                  return View("Index");
                 //   return RedirectToAction("Index?file="+);
              }
          }
      }

      Вот что у нас получилось в итоге. Отображение картинок из галереи в полном размере.

    Постраничный вывод в MVC ASP.NET

    Пагинация или постраничный вывод позволяет разбить набор объектов на несколько страниц и установить ссылки на упрощенного доступа к конкретным страницам. В ASP.NET MVC пагинацию сделать очень легко. Можно, конечно, самим попробовать определить логику постраничного вывода. Однако мы можем упростить себе работу, воспользовавшись имеющимися плагинами. Один из таких плагинов представляет пакет PagedList.Mvc.

    Итак, добавим этот пакет в проект ASP.NET MVC 5: Для этого откройте меню Сервис->Диспетчер пакетов NuGet

    После установки в проект в узел References будут добавлены две новые библиотеки PagedList и PagedList.Mvc. Кроме того, в узел Content будет добавлен файл стилей PagedList.css, который будет использоваться при создании постраничного вывода.

    Создадим простую модель для хранения наших изображений.

    1. public class MyImage
    2. {
    3. public int Id { get; set; }
    4. public string File { get; set; }
    5. }
    public class MyImage
    {
    public int Id { get; set; }
    public string File { get; set; }
    }

    Модифицируем homecontroller следующим образом

    1. using PagedList;
    2. using System;
    3. using System.Collections.Generic;
    4. using System.IO;
    5. using System.Linq;
    6. using System.Web;
    7. using System.Web.Mvc;
    8. using WebApplication21.Models;
    9. namespace WebApplication21.Controllers
    10. {
    11. public class HomeController : Controller
    12. {
    13. private string[] files;
    14. List<MyImage> images;
    15. // GET: Home
    16. public void setupfiles()
    17. {
    18. int cnt = 0;
    19. files = Directory.GetFiles(Server.MapPath("/Files/"));
    20. images = new List<MyImage>();
    21. foreach (var file in files)
    22. {
    23. images.Add(new MyImage { Id = cnt++, File = file });
    24. }
    25. }
    26. [HttpGet]
    27. public ActionResult Index(int? page)
    28. {
    29. setupfiles();
    30. int pageSize = 3;
    31. int pageNumber = (page ?? 1);
    32. return View(images.ToPagedList(pageNumber, pageSize));
    33. }
    34. [HttpPost]
    35. public ActionResult Upload(HttpPostedFileBase upload)
    36. {
    37. if (upload != null)
    38. {
    39. // получаем имя файла
    40. string fileName = System.IO.Path.GetFileName(upload.FileName);
    41. // сохраняем файл в папку Files в проекте
    42. if (System.IO.File.Exists((Server.MapPath("/Files/" + fileName))))
    43. {
    44. ViewBag.File = "Файл с таким именем уже существует " + fileName;
    45. }
    46. else
    47. {
    48. upload.SaveAs(Server.MapPath("/Files/" + fileName));
    49. ViewBag.File = "Файл успешно загружен " + fileName;
    50. }
    51. }
    52. return RedirectToAction("Index");
    53. }
    54. }
    55. }
    using PagedList;
    using System;
    using System.Collections.Generic;
    using System.IO;
    using System.Linq;
    using System.Web;
    using System.Web.Mvc;
    using WebApplication21.Models;
    
    namespace WebApplication21.Controllers
    {
    
    
    
        public class HomeController : Controller
        {
            private string[] files;
             List<MyImage> images;
    
            // GET: Home
           
    
            public void setupfiles()
            {
                int cnt = 0;
                files = Directory.GetFiles(Server.MapPath("/Files/"));
                images = new List<MyImage>();
                foreach (var file in files)
                {
                    images.Add(new MyImage { Id = cnt++, File = file });
                }
            }
    
            [HttpGet]
            public ActionResult Index(int? page)
            {
                setupfiles();
                int pageSize = 3;
                int pageNumber = (page ?? 1);
                return View(images.ToPagedList(pageNumber, pageSize));
            }
    
    
            [HttpPost]
            public ActionResult Upload(HttpPostedFileBase upload)
            {
                
                if (upload != null)
                {
                    // получаем имя файла
                    string fileName = System.IO.Path.GetFileName(upload.FileName);
                    // сохраняем файл в папку Files в проекте
    
                    if (System.IO.File.Exists((Server.MapPath("/Files/" + fileName))))
                    {
                        ViewBag.File = "Файл с таким именем уже существует " + fileName;
                    }
                    else
                    {
                        upload.SaveAs(Server.MapPath("/Files/" + fileName));
                        ViewBag.File = "Файл успешно загружен " + fileName;
                    }
                }
                           
                 return RedirectToAction("Index");
            }
        }
    }

    Обратите внимание на следующие функции

    1. public ActionResult Index(int? page)
    2. {
    3. setupfiles();
    4. int pageSize = 3;
    5. int pageNumber = (page ?? 1);
    6. return View(images.ToPagedList(pageNumber, pageSize));
    7. }
    public ActionResult Index(int? page)
           {
               setupfiles();
               int pageSize = 3;
               int pageNumber = (page ?? 1);
               return View(images.ToPagedList(pageNumber, pageSize));
           }
    1. page ?? 1
    page ?? 1

    Двойной вопрос означает что в случае если page=NULL то мы присваиваем page значение 1

     

     

    Модифицируем индекс представление следующим образом

    1. @model PagedList.IPagedList<WebApplication21.Models.MyImage>
    2. @using PagedList.Mvc;
    3. @{
    4. ViewBag.Title = "Index";
    5. }
    6. <head>
    7. <link href="~/Content/PagedList.css" rel="stylesheet" />
    8. <link href="~/Content/bootstrap.css" rel="stylesheet" />
    9. <script src="~/Scripts/jquery-1.10.2.js"></script>
    10. <script src="~/Scripts/bootstrap.js"></script>
    11. <style>
    12. .modal-dialog {
    13. width: 70%;
    14. height: 100%;
    15. margin: auto;
    16. }
    17. .modal-body{
    18. width: 100%;
    19. height: 100%;
    20. margin: 0;
    21. padding: 0;
    22. }
    23. .modal-content {
    24. min-height: 100%;
    25. border-radius: 0;
    26. }
    27. </style>
    28. <script>
    29. $(document).ready(function () {
    30. $(".col-md-4").mouseenter(function () {
    31. $("#modal_mimg").attr("src", $(this).attr("data-mimg"));
    32. });
    33. });
    34. </script>
    35. </head>
    36. <body>
    37. <div class="container">
    38. <h3>Выберите файл для загрузки</h3>
    39. <p>
    40. @ViewBag.File
    41. </p>
    42. <p>
    43. @ViewBag.File1
    44. </p>
    45. @using (Html.BeginForm("Upload", "Home", FormMethod.Post, new { enctype = "multipart/form-data" }))
    46. {
    47. <input type="file" name="upload" /><br>
    48. <input type="submit" value="Загрузить" />
    49. }
    50. <div class="row">
    51. @foreach (var item in Model)
    52. {
    53. <div class="col-md-4" data-toggle="modal" data-target="#myModal" style="cursor: pointer;" data-mimg="@Url.Content("~/Files/" + System.IO.Path.GetFileName(item.File))">
    54. <div class="thumbnail">
    55. <div style="background-image:url('@Url.Content("~/Files/" + System.IO.Path.GetFileName(item.File))'); width:100%;height:200px;background-size:cover;background-position:center;">
    56. </div>
    57. </div>
    58. </div>
    59. }
    60. </div>
    61. <!-- Trigger the modal with a button -->
    62. Страница @(Model.PageCount < Model.PageNumber ? 0 : Model.PageNumber) из @Model.PageCount
    63. @Html.PagedListPager(Model, page => Url.Action("Index", new { page }))
    64. <!-- Modal -->
    65. <div id="myModal" class="modal fade" role="dialog" >
    66. <div class="modal-dialog ">
    67. <!-- Modal content-->
    68. <div class="modal-content">
    69. <div class="modal-header">
    70. <button type="button" class="close" data-dismiss="modal">&times;</button>
    71. <h4 class="modal-title">Просмотр изображения в полном размере</h4>
    72. </div>
    73. <div class="modal-body">
    74. <img id="modal_mimg" src="" style="width:100%;max-height:100%">
    75. </div>
    76. <div class="modal-footer">
    77. <button type="button" class="btn btn-default" data-dismiss="modal">Закрыть</button>
    78. </div>
    79. </div>
    80. </div>
    81. </div>
    82. </div>
    83. </body>
    @model PagedList.IPagedList<WebApplication21.Models.MyImage>
    @using PagedList.Mvc;
    @{
        ViewBag.Title = "Index";
    }
    <head>
        <link href="~/Content/PagedList.css" rel="stylesheet" />
        <link href="~/Content/bootstrap.css" rel="stylesheet" />
        <script src="~/Scripts/jquery-1.10.2.js"></script>
        <script src="~/Scripts/bootstrap.js"></script>
        <style>
            .modal-dialog {
              width: 70%;
              height: 100%;
              margin: auto;
              
            }
             .modal-body{
              width: 100%;
              height: 100%;
              margin: 0;
              padding: 0;
            }
    
            .modal-content {
              
              min-height: 100%;
              border-radius: 0;
            }
        </style>
        <script>
            $(document).ready(function () {
                $(".col-md-4").mouseenter(function () {
                    $("#modal_mimg").attr("src", $(this).attr("data-mimg"));
                    
                });
            });
        </script> 
    </head>
    <body>
        <div class="container">
        <h3>Выберите файл для загрузки</h3>
        <p>
            @ViewBag.File
        </p>
        <p>
            @ViewBag.File1
        </p>
        @using (Html.BeginForm("Upload", "Home", FormMethod.Post, new { enctype = "multipart/form-data" }))
        {
            <input type="file" name="upload" /><br>
            <input type="submit" value="Загрузить" />
        }
        <div class="row">
            @foreach (var item in Model) 
            {
                <div class="col-md-4" data-toggle="modal" data-target="#myModal" style="cursor: pointer;" data-mimg="@Url.Content("~/Files/" + System.IO.Path.GetFileName(item.File))">
                    <div class="thumbnail">
                        <div style="background-image:url('@Url.Content("~/Files/" + System.IO.Path.GetFileName(item.File))'); width:100%;height:200px;background-size:cover;background-position:center;">
    
                        </div>
                    </div>
                </div>
    
            }
         </div>
            <!-- Trigger the modal with a button -->
                Страница @(Model.PageCount < Model.PageNumber ? 0 : Model.PageNumber) из @Model.PageCount
    
                @Html.PagedListPager(Model, page => Url.Action("Index", new { page }))
    
            <!-- Modal -->
            <div id="myModal" class="modal  fade" role="dialog" >
                <div class="modal-dialog ">
    
                    <!-- Modal content-->
                    <div class="modal-content">
                        <div class="modal-header">
                            <button type="button" class="close" data-dismiss="modal">&times;</button>
                            <h4 class="modal-title">Просмотр изображения в полном размере</h4>
                        </div>
                        <div class="modal-body">
                            <img id="modal_mimg" src="" style="width:100%;max-height:100%">
                        </div>
                        <div class="modal-footer">
                            <button type="button" class="btn btn-default" data-dismiss="modal">Закрыть</button>
                        </div>
                    </div>
    
                </div>
            </div>
         </div>
    </body>

    Не забудьте подключить модель для пагинации

    1. @model PagedList.IPagedList<WebApplication21.Models.MyImage>
    2. @using PagedList.Mvc;
    @model PagedList.IPagedList<WebApplication21.Models.MyImage>
    @using PagedList.Mvc;

    Вывод кнопок пагинации осуществляет следующий код

    1. Страница @(Model.PageCount < Model.PageNumber ? 0 : Model.PageNumber) из @Model.PageCount
    2. @Html.PagedListPager(Model, page => Url.Action("Index", new { page }))
    Страница @(Model.PageCount < Model.PageNumber ? 0 : Model.PageNumber) из @Model.PageCount
    
           @Html.PagedListPager(Model, page => Url.Action("Index", new { page }))

     

     

  • Курсы технического обслуживания компьютеров в Караганде. Урок 1.

    Курсы технического обслуживания компьютеров в Караганде. Урок 1.

    Проверка блока питания.

    Бланк проверки блока питания компьютера

     

    ФИО мастера ____________                     Дата проведения теста__________

     

    Описание блока питания.

    Технические данные Значение
    Модель блока питания
    Серийный номер блока питания
    Мощность блока питания

     

    Визуальный осмотр блока питания.

    Описание теста Описание результатов теста
    Пломбы на месте?
    Механические повреждения проводов есть?
    Механические повреждения корпуса есть?
    Механические повреждения разъемов есть?
    Следы перегрева разъемов есть?
    Наличие коррозии на корпусе? Следы ржавчины или жидкостей есть?
    Опишите уровень засоренности пылью.

     

    Включение в сеть питания.
    Перед включением установите перемычку между зеленым и черным проводом на 24х пиновом разъеме.

    Проверка работоспособности блока питания.

    Описание теста Описание результатов теста
    Вентилятор охлаждения работает?
    Вентилятор охлаждения шумит больше нормы?
    Лампочка индикатор включения горит(если применимо)

     

    Проверка напряжений питания

    Цвет провода Напряжение питания соответствует допуску?
    Все измерения проводить относительно черного провода. Min Max Значение Да/Нет
    Красный 4.5В 5.5В
    Желтый 11.0В 13.0В
    Оранжевый 3.2В 3.4В

     

    Заключение мастера:    _______________________________________________________________

    Подпись: __________

     

    Скачать бланк проверки блока питания.

    Бланк проверки блока питания компьютера