Просто скомпилируйте и разобщите свою строку кода, если вы так склонны знать, как именно вы получаете то, что получаете.
Это то, что я получаю на своей машине, вместе с тем, что я думаю, что происходит:
$ cat evil.c
void evil(){
int i = 0;
i+= i++ + ++i;
}
$ gcc evil.c -c -o evil.bin
$ gdb evil.bin
(gdb) disassemble evil
Dump of assembler code for function evil:
0x00000000 <+0>: push %ebp
0x00000001 <+1>: mov %esp,%ebp
0x00000003 <+3>: sub $0x10,%esp
0x00000006 <+6>: movl $0x0,-0x4(%ebp) // i = 0 i = 0
0x0000000d <+13>: addl $0x1,-0x4(%ebp) // i++ i = 1
0x00000011 <+17>: mov -0x4(%ebp),%eax // j = i i = 1 j = 1
0x00000014 <+20>: add %eax,%eax // j += j i = 1 j = 2
0x00000016 <+22>: add %eax,-0x4(%ebp) // i += j i = 3
0x00000019 <+25>: addl $0x1,-0x4(%ebp) // i++ i = 4
0x0000001d <+29>: leave
0x0000001e <+30>: ret
End of assembler dump.
(I ... предположим, что команда 0x00000014 была какой-то оптимизацией компилятора?)
xhr.file = file;
; файловый объект не должен прикрепляться таким образом. xhr.send(file)
не отправляет файл. Вы должны использовать объект FormData
для переноса файла в объект данных post multipart/form-data
: var formData = new FormData();
formData.append("thefile", file);
xhr.send(formData);
. После этого к файлу может быть доступ в $_FILES['thefile']
(если вы используете PHP).
Помните, что MDC и демоны Mozilla Hack - ваши лучшие друзья.
EDIT: 2), было неверно. Он отправляет файл, но он будет отправлять его в качестве исходных данных. Это означает, что вам придется анализировать его самостоятельно на сервере (и это часто невозможно, зависит от конфигурации сервера). Читайте, как получить исходные данные в PHP здесь .