Newsgroup: it.comp.lang.javascript
Titolo: Problemi di upload...

A proposito di <input type="file">...
E' possibile specificare il tipo di file da mostrare nella dialog box? NS
mostra di default i file *.html, mentre IE *.*. A me interesserebbe le
immagini *.jpg; *.gif.
Ho provato cosě, ma non funzia:
<input type="file" value="*.jpg; *.gif">

..no INPUT TYPE="FILE", non ha proprietà value
--
Bye
Ro<*¿*>berto

Ciao a tutti! Chi sa come è possibile fare l'upload di file da locale a
server? Ho provato con un cGI scitto in C usando le funzioni FTP
(InternetConnect, FtpPutFile, etc),
ma non funziona. Poi ho tentato con la classe java Linlyn come suggerito da
qualcuno di voi, ma Java non consente di aprire file locali. Altre idee? Il
tutto dovrebbe funzionare sia su PC sia su Unix, quindi non posso usare
ActiveX.
Grazie, Mara

con HTML e
<form...action=server/cgi/prog.exe...
File name da allegare:<INPUT TYPE="file">
fai prelevare sul disco del client il file da mandare.
poi quando lo riceve il server, decidi cosa ne deve fare!
.....dovrebbe andare


 wrote in message
news:7hrj75$3hf$1...@diesel.cu.mi.it...


Che server hai??
il formato con cui ti arrivano i dati, č da controllare..
ad es, in c :
char *get_POST()
{
  int content_length;
  char *buffer;
  if (CONTENT_LENGTH != NULL) {
    content_length = atoi(CONTENT_LENGTH);
    buffer = malloc(sizeof(char) * content_length + 1);
    if (fread(buffer,sizeof(char),content_length,stdin) !=
content_length) {
      /* consistency error. */
      fprintf(stderr,"errore del cgihtml: input length <
CONTENT_LENGTH\n");
      exit(1);
    }
    buffer[content_length] = '\0';
  }
  else { /* null content length */
    /* again, perhaps more detailed, robust error message
here */
    fprintf(stderr,"attenzione al cgihtml: CONTENT_LENGTH is
null\n");
    exit(1);
  }
  return buffer;
}
molto piů semplice se con le asp...
--
Bye
Ro<*ż*>berto

 wrote in message
news:7i3me0$405$1...@diesel.cu.mi.it...


con NT4.. installa il S.P. 5 e iis4 (gratuiti)
poi puoi lavorare con le asp.
anche con unix e il webserver apache
puoi installare le asp, o lavorare in perl
cosa che con un modulo apposta puoi
fare anche in NT e iis...
tutti e due lavorano anche in C, quindi
a te la scelta, in base al linguaggio che
ritieni più facile....
io ho scelto NT-iis e le asp per le
cose facili del server, e Isapi per
quelle più "pesati".....


/* llist.h - Header file for llist.c*/
typedef struct {
  char *name;
  char *value;
} entrytype;
typedef struct _node {
  entrytype entry;
  struct _node* next;
} node;
typedef struct {
  node* head;
} llist;
/* cgi-llist.c*/
#include <stdlib.h>
#include <string.h>
#include "cgi-llist.h"
#include "string-lib.h"
void list_create(llist *l)
{
  l->head = 0;
}
node* list_next(node* w)
{
  return w->next;
}
short on_list(llist *l, node* w)
{
  return (w != 0);
}
short on_list_debug(llist *l, node* w)
{
  node* current;
  if (w == 0)
    return 0;
  else {
    current = l->head;
    while ( (current != w) && (current != 0) )
      current = current->next;
    if (current == w)
      return 1;
    else
      return 0;
  }
}
void list_traverse(llist *l, void (*visit)(entrytype item))
{
  node* current;
  current = l->head;
  while (current != 0) {
    (*visit)(current->entry);
    current = current->next;
  }
}
node* list_insafter(llist* l, node* w, entrytype item)
{
  node* newnode = malloc(sizeof(node));
  newnode->
entry.name
 = newstr(
item.name
);
  newnode->entry.value = newstr(item.value);
  if (l->head == 0) {
    newnode->next = 0;
    l->head = newnode;
  }
  else if (!on_list(l,w))
    /* ERROR: can't insert item after w since w is not on l
*/
    exit(1);
  else {
    /* insert node after */
    if (newnode == 0) /* can assume that w != NULL */
      /* ERROR: nothing too insert after */
      exit(1);
    else {
      newnode->next = w->next;
      w->next = newnode;
    }
  }
  return newnode;
}
void list_clear(llist* l)
{
  node* lastnode;
  node* nexttolast;
  node* current;
  while (l->head != 0) {
    current = l->head;
    if (current->next == 0) {
      free(current);
      current = 0;
      l->head = current;
    }
    else {
      while ( current->next != 0 ) {
 nexttolast = current;
 lastnode = current->next;
 current = lastnode;
      }
      free(lastnode);
      nexttolast->next = 0;
    }
  }
}
int read_cgi_input(llist* entries)
{
  char *input;
  /* check for form upload.  this needs to be first, because
the
     standard way of checking for POST data is inadequate.
If you
     are uploading a 100 MB file, you are unlikely to have a
buffer
     in memory large enough to store the raw data for
parsing.
     Instead, parse_form_encoded parses stdin directly.
     In the future, I may modify parse_CGI_encoded so that
it also
     parses POST directly from stdin. */
  if ((CONTENT_TYPE != NULL) &&
      (strstr(CONTENT_TYPE,"multipart/form-data") != NULL) )
    return parse_form_encoded(entries);
  /* get the input */
  if (REQUEST_METHOD == NULL)
    input = get_DEBUG();
  else if (!strcmp(REQUEST_METHOD,"POST"))
    input = get_POST();
  else if (!strcmp(REQUEST_METHOD,"GET"))
    input = get_GET();
  else { /* error: invalid request method */
    fprintf(stderr,"caught by cgihtml: REQUEST_METHOD
invalid\n");
    exit(1);
  }
  /* parse the input */
  return parse_CGI_encoded(entries,input);
}
..bho, al limite ti passo i file .c e .h, mi sa che questi
argomenti
interessino poco al NG.
