Архив метки: пример

Как загрузить файл на сервер через php

В простейшем случае для загрузки файлов на сервер через php понадобится создать 2 файла на хостинге. Первый будет содержать форму для выбора файла и может быть написан на чистом html. Второй — на php, будет принимать данные из нашей формы и сообщать о результатах.

Код файла с формой index.php:

<!doctype html><html>
<head>

</head>
<body>
<form enctype="multipart/form-data" action="/upload.php" method="POST">
    <!-- MAX_FILE_SIZE -->
    <input type="hidden" name="MAX_FILE_SIZE" value="30000" />
    <!-- Имя этого input`а определит имя файла в массиве $_FILES -->
    Выбрать файл: <input name="userfile" type="file" />
    <input type="submit" value="Отправить" />
</form>
</body>
</html>

Код файла upload.php, принимающего данные:

<?php
// В версиях PHP до 4.1.0, надо использовать $HTTP_POST_FILES вместо $_FILES.

$uploaddir = '/home/user/upload/'; //Куда сохраним файлы
$uploadfile = $uploaddir . basename($_FILES['userfile']['name']);

echo '<pre>';
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
    echo "Файл успешно загружен куда надо\n";
} else {
    echo "Загрузить не удалось!\n";
}

// эти две ниже можно раскоментировать:
//echo 'Информация для отладки:';
//print_r($_FILES);

print "</pre>";

?>

Сохранять файлы безопаснее в папке, не доступной через вебсервер (за пределами корневой папки самого сайта, на который выкладываем скрипты .php)

Размер загружаемых файлов может быть ограничен настройками веб-сервера или php.

Самая короткая программа на C#, которая ничего не делает

Текст минимальной программы на C# test.cs:

class test {
	static void Main(){

	}
}

Программа скомпилировалась через csc в экзешник test.exe размером 3 584 байт

 

программа на C# для вывода в консоль списка локальных пользователей

Относительно простая программа для вывода в коммандной строке списка локальных учётных записей пользователей на компьютере. Программа закончена и готова к компиляции.

using System; 
using System.DirectoryServices; 
using System.Linq; 
 
namespace HelloWorld 
{ 
    class Hello 
    { 
        static void Main() 
        { 
            Console.WriteLine("Список локальных пользователей:"); 
 
            //Black magic using linq 
            var path = string.Format("WinNT://{0},computer", Environment.MachineName); 
 
            using (var computerEntry = new DirectoryEntry(path)) 
            { 
                var userNames = from DirectoryEntry childEntry in computerEntry.Children 
                                where childEntry.SchemaClassName == "User" 
                                select childEntry.Name; 
 
                foreach (var name in userNames) 
                    Console.WriteLine(name); 
            } 
  
            Console.WriteLine("Нажми любую кнопку."); 
            Console.ReadKey(); 
        } 
    } 
}

Как собрать программу, чтобы она заработала:

1. Если в системе не установлен .net framework, то скачиваем его с сайта микрософта и устанавливаем

2. Вставляем текст программы в бллокнот и сохраняем в файл program.cs (.cs — исходник программы на языке C#)

3. Открываем командную строку и компилируем нашу программу с помощью компилятора csc.exe примерно так:

C:\Windows\Microsoft.NET\Framework\v4.0.30319\csc.exe c:\test\program.cs

4. В результате если не было ошибок, то получим файл program.exe — это и есть наша откомпилированная программа на C#.

Теперь можно потихоньку разбираться с исходниками и пытаться поправить программу под себя. Смысл статьи — просто показать, на сколько оказывается легко программировать в винде.

Подборка статей по программированию html5 Canvas

Первой попалась вот эта www.html5rocks.com/en/tutorials/canvas/integrating/. Статья с примерами кода и ссылками на открытые движки html5, в которых используются описанные технологии. Список рассмотренных вопросов:

  • как программно проверить, что canvas поддерживается браузером
  • пример создания элемента canvas
  • пример преобразования содержимого canvas в URI (img.src=»data:image/gif;base64,R0lGOD…)
  • пример сохранения data URI в локальное хранилище (local storage)
  • пример сохранения data URI на сервере через скрипт на PHP
  • примеры рисования из кода Javascript линий и картинок на canvas

Следующая статья — http://www.html5canvas.ru/2011/03/mouse.html. Здесь приведён код javascript для обработки событий мыши на canvas — внутри, снаружи, нажатие кнопок, изменение координат курсора мыши. Приведён скелет html страницы для работы с canvas.

На http://www.robodesign.ro/paintweb/trunk/demos/demo1.html пример готового приложения — графический редактор PaintWeb, написанный на javascript. Из инструментов используются карандаш, стёрка, кружки, прямоугольники, вставка текста и картинок (по URL)

http://www.mrdoob.com/projects/harmony/#grid — ещё один движок для рисования на html5 — Harmony.

И напоследок http://www.w3.org/html/wg/drafts/2dcontext/html5_canvas/#transformations — документация по API html5 canvas — масштабирование, перемещение и поворот содержимого canvas на произвольный угол; рисование и стиль линий, окружностей, прямоугольников, кривых Безье; текст; заливки, линейные и радиальные градиенты; вставка изображений; манипуляции на уровне пикселей; прозрачность изображений, смазывание, тень. Всё нафаршировано примерами кода.

В итоге информации достаточно, чтоб сделать графический редактор на html5 под собственные нужды.

Как подготовить отчёт ocsinventory в ubuntu

srvtestadmin@SRV-test:~$ sudo apt-get install ocsinventory-agent
[sudo] password for srvtestadmin:
Чтение списков пакетов… Готово
Построение дерева зависимостей
Чтение информации о состоянии… Готово
Будут установлены следующие дополнительные пакеты:
  intltool-debian libproc-daemon-perl po-debconf
Предлагаемые пакеты:
  smartmontools read-edid libmail-box-perl
Рекомендуемые пакеты:
  dmidecode hdparm libmail-sendmail-perl
НОВЫЕ пакеты, которые будут установлены:
  intltool-debian libproc-daemon-perl ocsinventory-agent po-debconf
обновлено 0, установлено 4 новых пакетов, для удаления отмечено 0 пакетов, и 38 пакетов не обновлено.
Необходимо скачать 0 B/413 kB архивов.
После данной операции, объём занятого дискового пространства возрастёт на 2 076 kB.
Хотите продолжить [Д/н]? y
Предварительная настройка пакетов ...
Selecting previously unselected package intltool-debian.
(Чтение базы данных ... на данный момент установлено 120432 файла и каталога.)
Распаковывается пакет intltool-debian (из файла .../intltool-debian_0.35.0+20060710.1_all.deb)...
Selecting previously unselected package libproc-daemon-perl.
Распаковывается пакет libproc-daemon-perl (из файла .../libproc-daemon-perl_0.14-1_all.deb)...
Selecting previously unselected package po-debconf.
Распаковывается пакет po-debconf (из файла .../po-debconf_1.0.16+nmu2ubuntu1_all.deb)...
Selecting previously unselected package ocsinventory-agent.
Распаковывается пакет ocsinventory-agent (из файла .../ocsinventory-agent_2%3a2.0-1_all.deb)...
Настраивается пакет intltool-debian (0.35.0+20060710.1) ...
Настраивается пакет libproc-daemon-perl (0.14-1) ...
Настраивается пакет po-debconf (1.0.16+nmu2ubuntu1) ...
Настраивается пакет ocsinventory-agent (2:2.0-1) ...

Creating config file /etc/ocsinventory/ocsinventory-agent.cfg with new version
srvtestadmin@SRV-test:~$ ocsinventory-agent --local ~/srv-test_2013-08-08.ocs
Config: Failed to open /etc/ocsinventory/ocsinventory-agent.cfg
[info] You should run this program as super-user.
[error] Failed to create /var/lib/ocsinventory-agent/http:__ocsinventory-ng_ocsinventory directory: Permission denied
[info] [download] Agent is running in local mode...disabling module
Can't open `/home/srvtestadmin/srv-test_2013-08-08.ocs/SRV-test-2013-08-08-16-14-40.ocs': No such file or directory at /usr/share/perl5/Ocsinventory/Agent/XML/Inventory.pm line 160.
srvtestadmin@SRV-test:~$ sudo ocsinventory-agent --local ~/srv-test_2013-08-08.ocs
[info] Accountinfo file doesn't exist. I create an empty one.
[info] [download] Agent is running in local mode...disabling module
Can't open `/home/srvtestadmin/srv-test_2013-08-08.ocs/SRV-test-2013-08-08-16-14-54.ocs': No such file or directory at /usr/share/perl5/Ocsinventory/Agent/XML/Inventory.pm line 160.
srvtestadmin@SRV-test:~$ sudo ocsinventory-agent --local ~/
[info] [download] Agent is running in local mode...disabling module
[info] Inventory saved in /home/srvtestadmin/SRV-test-2013-08-08-16-14-54.ocs
srvtestadmin@SRV-test:~$

Как в windows создать пользователя из командной строки и из .bat файла

Пользователь создаётся коммандой

net user vasya 54321 /add

54321 — пароль нового пользователя. Не забываем, что для создания пользователей должно быть достаточно прав. Пользователь станет членом локальной группы «Пользователи». Если нам нужен не пользователь, а администратор, то выполняем ещё 2 команды:

net localgroup администраторы vasya /add
net localgroup пользователи vasya /delete

Ну и для механизации добавления администраторов получается примерно вот такой .bat файл:

net user %1% %2% /add
net localgroup администраторы %1% /add
net localgroup пользователи %1% /delete

Помним, что .bat файл нужно сохранять в кодировке cp866, так как названия групп на русском (например Notepad++ умеет). Теперь создать пользователя можно выполнив следующую команду:

> newadmin.bat vasya 54321

Управление объектами в Blender из консоли Python

Будем управлять кубиком на 3D-виде через переменную Cube

>>> cube = bpy.data.objects["Cube"]

Показать или спрятать имя объекта на виде

>>> cube.show_name = 1
>>> cube.show_name = 0

Показать или спрятать сам кубик

>>> cube.hide = 1
>>> cube.hide = 0

Показать на виде имя объекта

>>> cube.show_name = 1

Изменить абсолютное положение объекта в пространстве по оси X

>>> cube.location.x = 1
>>> cube.location.x = 2
>>> cube.location.x = 0

Ещё кое-что
#добавить кубик
bpy.ops.mesh.primitive_cube_add(radius=1, view_align=False, enter_editmode=False, location=(0, 0, 0), rotation=(0, 0, 0), layers=(True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False))

#добавить текстовый обьект
bpy.ops.object.text_add(view_align=False, enter_editmode=False, location=(1.53493, -4.79475, 1.36985), rotation=(0, 0, 0), layers=(True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False))

#обьявление переменной — ссылки на текущий активный обьект
o = bpy.context.scene.objects.active