Difficoltà per l'invio contemporaneo di file (pdf) e foto (jpg) con Aruba

Davvy

Nuovo Utente
20 Ott 2008
4
0
0
Ciao a tutti!
Ho creato una pagina (riportata in basso) che consentirebbe di inviare, attraverso form distinti, informazioni generiche e file (es. pdf) e foto (es. gif o jpg).
Il risultato che ottengo è che tutto viene caricato sul DB (tutti i campi testo/combo-box immessi/selezionati), i file (es., pdf + jpg) vengono uplodati sulla cartella public del sito (Aruba come hosting), ma nel DB, in funzione di come faccio la sequenza delle operazioni (es. carico prima la foto e poi la notizia), nei relativi campi "filename" e "fotografia" compare o, per entrambi, il file della foto o, per entrambi, il file del pdf. Insomma: viene fuori una duplicazione.
Presumo che il problema sia dovuto alla funzione setFileName (val), riportata in grassetto in basso, perché andrebbe a scrivere la stessa informazione su entrambi i campi "filename" e "fotografia" del DB. Non sono riuscito a creare un'altra funzione che gestisca in modo distinto i campi di upload files!
Come posso gestirli separatamente? sto "impazzendo"... Mi dareste una mano? :) GRAZIE in anticipo.
Saluti,
Davide

Segue il codice:
<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<!--#include file="Connections/DB.asp" -->
<%
' *** Edit Operations: declare variables

Dim MM_editAction
Dim MM_abortEdit
Dim MM_editQuery
Dim MM_editCmd

Dim MM_editConnection
Dim MM_editTable
Dim MM_editRedirectUrl
Dim MM_editColumn
Dim MM_recordId

Dim MM_fieldsStr
Dim MM_columnsStr
Dim MM_fields
Dim MM_columns
Dim MM_typeArray
Dim MM_formVal
Dim MM_delim
Dim MM_altVal
Dim MM_emptyVal
Dim MM_i

MM_editAction = CStr(Request.ServerVariables("SCRIPT_NAME"))
If (Request.QueryString <> "") Then
MM_editAction = MM_editAction & "?" & Server.HTMLEncode(Request.QueryString)
End If

' boolean to abort record edit
MM_abortEdit = false

' query string to execute
MM_editQuery = ""
%>
<%
' *** Insert Record: set variables

If (CStr(Request("MM_insert")) = "notizia") Then

MM_editConnection = MM_DB_STRING
MM_editTable = "Notizie"
MM_editRedirectUrl = "menu_area_riservata.asp"
MM_fieldsStr = "categoria_news|value|titolo|value|sottotitolo|value|decrizione_breve|value|descrizione|value|fonte|value|data_pubblicazione|value|filename|value|fotografia|value"
MM_columnsStr = "categoria_news|',none,''|titolo|',none,''|sottotitolo|',none,''|descrizione_breve|',none,''|descrizione|',none,''|fonte|',none,''|data_pubblicazione|',none,NULL|file_name|',none,''|fotografia|',none,''"

' create the MM_fields and MM_columns arrays
MM_fields = Split(MM_fieldsStr, "|")
MM_columns = Split(MM_columnsStr, "|")

' set the form values
For MM_i = LBound(MM_fields) To UBound(MM_fields) Step 2
MM_fields(MM_i+1) = CStr(Request.Form(MM_fields(MM_i)))
Next

' append the query string to the redirect URL
If (MM_editRedirectUrl <> "" And Request.QueryString <> "") Then
If (InStr(1, MM_editRedirectUrl, "?", vbTextCompare) = 0 And Request.QueryString <> "") Then
MM_editRedirectUrl = MM_editRedirectUrl & "?" & Request.QueryString
Else
MM_editRedirectUrl = MM_editRedirectUrl & "&" & Request.QueryString
End If
End If

End If
%>
<%
' *** Insert Record: construct a sql insert statement and execute it

Dim MM_tableValues
Dim MM_dbValues

If (CStr(Request("MM_insert")) <> "") Then

' create the sql insert statement
MM_tableValues = ""
MM_dbValues = ""
For MM_i = LBound(MM_fields) To UBound(MM_fields) Step 2
MM_formVal = MM_fields(MM_i+1)
MM_typeArray = Split(MM_columns(MM_i+1),",")
MM_delim = MM_typeArray(0)
If (MM_delim = "none") Then MM_delim = ""
MM_altVal = MM_typeArray(1)
If (MM_altVal = "none") Then MM_altVal = ""
MM_emptyVal = MM_typeArray(2)
If (MM_emptyVal = "none") Then MM_emptyVal = ""
If (MM_formVal = "") Then
MM_formVal = MM_emptyVal
Else
If (MM_altVal <> "") Then
MM_formVal = MM_altVal
ElseIf (MM_delim = "'") Then ' escape quotes
MM_formVal = "'" & Replace(MM_formVal,"'","''") & "'"
Else
MM_formVal = MM_delim + MM_formVal + MM_delim
End If
End If
If (MM_i <> LBound(MM_fields)) Then
MM_tableValues = MM_tableValues & ","
MM_dbValues = MM_dbValues & ","
End If
MM_tableValues = MM_tableValues & MM_columns(MM_i)
MM_dbValues = MM_dbValues & MM_formVal
Next
MM_editQuery = "insert into " & MM_editTable & " (" & MM_tableValues & ") values (" & MM_dbValues & ")"

If (Not MM_abortEdit) Then
' execute the insert
Set MM_editCmd = Server.CreateObject("ADODB.Command")
MM_editCmd.ActiveConnection = MM_editConnection
MM_editCmd.CommandText = MM_editQuery
MM_editCmd.Execute
MM_editCmd.ActiveConnection.Close

If (MM_editRedirectUrl <> "") Then
Response.Redirect(MM_editRedirectUrl)
End If
End If

End If
%>
<%
Dim Inserimento_notizia
Dim Inserimento_notizia_numRows

Set Inserimento_notizia = Server.CreateObject("ADODB.Recordset")
Inserimento_notizia.ActiveConnection = MM_DB_STRING
Inserimento_notizia.Source = "SELECT * FROM Notizie"
Inserimento_notizia.CursorType = 0
Inserimento_notizia.CursorLocation = 2
Inserimento_notizia.LockType = 1
Inserimento_notizia.Open()

Inserimento_notizia_numRows = 0
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Inserimento notizia</title>
<script language="JavaScript" type="text/JavaScript">
<!--
function MM_openBrWindow(theURL,winName,features) { //v2.0
window.open(theURL,winName,features);
}

function MM_findObj(n, d) { //v4.01
var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[n];
for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers.document);
if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_validateForm() { //v4.0
var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;
for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=MM_findObj(args);
if (val) { nm=val.name; if ((val=val.value)!="") {
if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@');
if (p<1 || p==(val.length-1)) errors+='- '+nm+' must contain an e-mail address.\n';
} else if (test!='R') { num = parseFloat(val);
if (isNaN(val)) errors+='- '+nm+' must contain a number.\n';
if (test.indexOf('inRange') != -1) { p=test.indexOf(':');
min=test.substring(8,p); max=test.substring(p+1);
if (num<min || max<num) errors+='- '+nm+' must contain a number between '+min+' and '+max+'.\n';
} } } else if (test.charAt(0) == 'R') errors += '- '+nm+' is required.\n'; }
} if (errors) alert('The following error(s) occurred:\n'+errors);
document.MM_returnValue = (errors == '');
}
//-->
</script>
<script language="JavaScript" type="text/JavaScript">
<!--
function setFileName (val)
{
document.notizia.filename.value=val;
document.notizia.fotografia.value=val;
}
-->

</script>

<style type="text/css">
<!--
.style1 {
font-size: 16px;
font-weight: bold;
font-style: italic;
}
.style2 {font-size: 24px; font-weight: bold; font-style: italic; }
-->
</style>
</head>

<body>
<p align="center"><img src="images/foto_small.jpg" width="150" height="151" border="0"></p>
<p align="center" class="style1"><span class="style2">AREA RISERVATA</span></p>
<p align="center" class="style1">PAGINA PER L'INSERIMENTO DI UNA NOTIZIA</p>
<form ACTION="<%=MM_editAction%>" method="POST" name="notizia" id="notizia">
<table width="555" align="center">
<tr valign="baseline">
<td align="right" nowrap class="testo">Categoria News :</td>
<td><select name="categoria_news" id="categoria_news" title="<%=(Inserimento_notizia.Fields.Item("categoria_news").Value)%>">
<option value="A">Appuntamenti</option>
<option value="L">Libri</option>
<option value="N">Notizie</option>
<option value="R">Rubriche</option>
</select></td>
</tr>
<tr valign="baseline">
<td align="right" nowrap class="testo">Titolo:</td>
<td><input type="text" name="titolo" value="" size="50">
</td>
</tr>
<tr valign="baseline">
<td align="right" nowrap class="testo">Sottotitolo:</td>
<td><input type="text" name="sottotitolo" value="" size="50">
</td>
</tr>
<tr>
<td align="right" valign="top" nowrap class="testo">Decrizione breve:</td>
<td valign="baseline"><textarea name="decrizione_breve" cols="50" rows="4"></textarea>
</td>
</tr>
<tr valign="baseline">
<td align="right" valign="top" nowrap class="testo">Decrizione completa:</td>
<td><textarea name="descrizione" cols="50" rows="10" id="descrizione"></textarea></td>
</tr>
<tr valign="baseline">
<td align="right" nowrap class="testo">Fonte:</td>
<td><input type="text" name="fonte" value="" size="32"></td>
</tr>
<tr valign="baseline">
<td align="right" nowrap class="testo">Data pubblicazione (gg/mm/aaaa):</td>
<td><input type="text" name="data_pubblicazione" value="<%=date()%>" size="32">
</td>
</tr>
</table>
<p>
<input type="hidden" name="MM_insert" value="notizia">
<input name="filename" type="hidden" id="filename" value=" ">
<input name="fotografia" type="hidden" id="fotografia" value=" ">
</p>
</form>
<form action="../upload/newsOutputFile_img.asp" method="post" enctype="multipart/form-data" name="uploadForm" target="b" class="testo" id="uploadForm">
<div align="center">Seleziona l'immagine da inserire a corredo della news:
<input name="foto" type="file" id="foto" size="40">
<input name="Submit" type="submit" onClick="MM_openBrWindow('','b','resizable=yes,width=200,height=200')" value="Invia">
</div>
</form>
<form action="../upload/newsOutputFile.asp" method="post" enctype="multipart/form-data" name="uploadForm2" target="b" class="testo" id="uploadForm2">
<div align="center">Seleziona l'articolo da inserire a corredo della news:
<input name="blob" type="file" size="40">
<input name="Submit" type="submit" onClick="MM_openBrWindow('','b','resizable=yes,width=200,height=200')" value="Invia">
</div>
</form>
<p align="center">
<input name="Button" type="button" onClick="MM_validateForm('titolo','','R','sottotitolo','','R','data_pubblicazione','','R','decrizione_breve','','R');if (document.MM_returnValue) document.notizia.submit();return document.MM_returnValue" value="Inserisci Notizia">
</p>
<p align="center"><a href="menu_area_riservata.asp">Ritorna al men&ugrave; dell'Area Riservata</a></p>
</body>
</html>
<%
Inserimento_notizia.Close()
Set Inserimento_notizia = Nothing
%>
 

Davvy

Nuovo Utente
20 Ott 2008
4
0
0
Ciao lukeonweb,
innanzi tutto grazie per l'interessamento!
spiego meglio quanto ho scritto. Sostanzialmente, dopo che si effettua l'upload dei file (che possono essere in PDF per l'articolo e in JPG per la foto), nel DB, i campi "filename" e "fotografia" vengono valorizzati con lo stesso contenuto che può essere o il nome del file PDF o il nome del file JPG. Tutto ciò, ovviamente, è indesiderato. Il mio obiettivo è far sì che il campo "filename" contenga il nome del file PDF, mentre il campo "fotografia" contenga il nome del file JPG.

Spero di essere stato adesso esaustivo.
Saluti,
Davide
 

lukeonweb

Utente Attivo
5 Mar 2003
5.175
13
38
45
Napoli
www.lucaruggiero.it
Chiarissimo!

Confesso di non aver letto un kilometro di codice, ma vedo che hai evidenziato:

<script language="JavaScript" type="text/JavaScript">
<!--
function setFileName (val)
{
document.notizia.filename.value=val;
document.notizia.fotografia.value=val;
}-->
</script>

Ad occhio mi pare normale che dia errore nel senso che intendi tu.

Fai cosi:

<script language="JavaScript" type="text/JavaScript">
<!--
function setFileName (val_pdf, val_jpg)
{
document.notizia.filename.value=val_pdf;
document.notizia.fotografia.value=val_jpg;
}-->
</script>

Fammi sapere.
 

Davvy

Nuovo Utente
20 Ott 2008
4
0
0
Ciao!
ho provato, ma non va!
Questa volta, come risultato si ha che:
a) uno dei due campi nel DB (es. "filename") viene valorizzato con il nome del file, ma non sempre con quello corretto
b) l'altro dei due campi (es. "fotografia") viene valorizzato con undefined

In altri termini, in funzione della sequenza con cui si caricano i file (es., prima il PDF e poi il JPG) cambia il risultato: il campo "filename" contiene il nome file del JPG, mentre il campo "fotografia" contiene il valore undefined... e viceversa.

Boh!
 

Davvy

Nuovo Utente
20 Ott 2008
4
0
0
Ho risolto

Grazie!
il problema risiedeva nel file newsOutputFile_img.asp in cui non era impostato correttamente un parametro.
Sostanzialmente, è stato necessario creare una nuova funzione (simile a setFilename, chiamata setFotoname e impostata anche nella suddetta pagina asp).

Ciao
 
Discussioni simili
Autore Titolo Forum Risposte Data
Z Difficoltà codice data PHP 0
L difficoltà con Xampp. printing php mancante...help Web Server 6
T MYSQL: valore più frequente ma con difficoltà in più... PHP 1
S [PHP] Difficoltà con costrutto if/else PHP 6
yanhong telecamere avidsen e panasonic, difficoltà di collegamento IP Cam e Videosorveglianza 0
Z [PHP] Difficoltà con la IF su orari disponibili e occupati PHP 5
M [PHP] Difficoltà inserimento valori nella tabella scontrini PHP 16
E difficoltà a modificare la pagina html HTML e CSS 2
P Difficoltà con decimali Pi Greco .NET Framework 4
D difficoltà a visualizzare tutte le foto della galleria PHP 10
C Difficoltà installazione CLASSE PHPMAILER PHP 1
M Difficoltà nel #div content HTML e CSS 1
F Difficoltà a caricare file grandi con Dreamweaver HTML e CSS 2
A difficoltà apache windows PHP 0
felino Lubuntu 18.04 Requisiti per applicazione console .net core 7.0 Linux e Software 0
M pulsante per aprire una maschera che contiene controllo schede MS Access 0
E Aiuto per query PHP 8
E Il punto di riferimento italiano per Trailers cavalli Discussioni Varie 0
F CERCO Servizi SEO di Qualità per Agenzie di Servizi SEO e Posizionamento 3
D Miglior modo per estrarre le occorrenze di un elemento in un set di più file xml e quindi scrivere il risultato in una tabella Excel o magari in JSON XML 0
A Cerco programmatore/sviluppatore per creare forum Offerte e Richieste di Lavoro e/o Collaborazione 2
R Plugin di base per WordPress WordPress 0
D [COMPRO/CERCO] GUEST POST o scambio link per sito di Spiritualità ed Esoterismo. Vendere e Acquistare pubblicita' online 0
L Suggerimento Pagespeed per non vedenti HTML e CSS 0
M Analisi sito per pulire codice inutile HTML e CSS 1
Paolo69 Risolto reCAPTCHA v2 per ASP Classic ASP 0
M Hosting VPS per server di gioco Minecraft Hosting 0
N Grazie per il benvenuto Presentati al Forum 0
Lino80 [Retribuito] Cerco programmatore php per modifica/inserimento funzione/valori da un plugin importer wordpress Offerte e Richieste di Lavoro e/o Collaborazione 0
R Filtri e plugin per photoshop Photoshop 0
AkTaRuS DIsabilitare il tasto destro tranne che per code e pre Javascript 1
0 [Retribuito] Cercasi programmatore per GdR PbC Offerte e Richieste di Lavoro e/o Collaborazione 0
A Adempimenti per magazine on line Leggi, Normative e Fisco 0
R Recupero di permalink di un sito che è stato eliminato per errore WordPress 5
I aiuto urgente per thunderbird Posta Elettronica 0
A Web master per semplice sito web Offerte e Richieste di Lavoro e/o Collaborazione 2
M [Cerco][Gratuito] Artista/designer per creazione grafica gioco di società Offerte e Richieste di Lavoro e/o Collaborazione 0
M Un saluto per cominciare Presentati al Forum 1
N MAX() + ADD_DATE - per update su Mysql MySQL 0
G Qualcuno conosce questo software per gestire le telecamere IP Cam e Videosorveglianza 0
A [CERCO] Articolista per siti a tema eventi e feste private Offerte e Richieste di Lavoro e/o Collaborazione 0
F Applicazione PHP/MySQL per prenotazioni: limitare il numero massimo di posti prenotabili PHP 20
I aiuto per outlook Posta Elettronica 0
L Script per convertire numeri in parole Javascript 2
J [Cerco] [Collaborazione gratuita] Grafico per piccoli lavori di grafica Offerte e Richieste di Lavoro e/o Collaborazione 0
M Memorizzazione temi per le diverse pagine del sito Javascript 1
otto9due Proteggere file caricati dall'esterno ma renderli accessibili per gli utenti loggati. PHP 4
E Consigli per hosting reseller Hosting 0
T aiuto per trasformare un quiz fatto in JS in un quiz in JQUERY jQuery 0
F Cerco fotografo per sito abiti da sposa Discussioni Varie 2

Discussioni simili