File upload restrictions
I am using the following script to upload photos to server and store details in a database
I'm a bit stuck as how to add restrictions such as size and type to this script?
Any help would be appreciated.
Tom
<?php
//this is the directory where the images images will be saved
$target = "images/";
$target = $target . basename( $_FILES['photo']['name']);
// this gets all the other info from the form
$name=$_POST['name'];
$email=$_POST['email'];
$phone=$_POST['phone'];
$pic=($_FILES['photo']['name']);
// Connects to your Database
mysql_connect("host", "user", "pass") or die(mysql_error()) ;
mysql_select_db("DB") or die(mysql_error()) ;
//Writes the information to the database
mysql_query("INSERT INTO employees (name,email,phone,photo)
VALUES ('$name', '$email', '$phone', '$pic')") ;
//Writes the photo to the server
if(move_uploaded_file($_FILES['photo']['tmp_name'], $target))
$note['success'] = 'The file '. basename( $_FILES['photo']['name']). ' has been uploaded, and your information has been added to the directory';
else {
//Give an error if it's not
$note['error'] = 'Sorry, there was a problem uploading your file.';
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Untitled Document</title>
</head>
<body><?php
if (isset($note)) {
echo '<ul>';
foreach ($note as $alert) {
echo "<li class='warning'>$alert</li>/n";
echo '<ul>';
?>
</body>
</html>
Here is an example:
$width=getimagesize($uploadfile);
$widthx=$width[0];
$heightx=$width[1];
if (($widthx > 110) | (heightx > 145)){
$message = "The image size was too large and was not submitted. Maximum image size is 110 pixels wide by 145 pixels high";
} else {
Similar Messages
-
How to configure file upload restriction by file extension?
Hi All,
I want to know if its possible to restrict the file upload for any file extensions in CM Repositories. For example, I want that the users can not upload .avi files. Can I configure that restriction?
Regards and Thanks,
Arnau RoviraHi,
> How can I create a repository service?
> It's like a web service?
No. A repository service is a standard pluggable service within the KM framework. Search for "repository service" on SDN for further details.
> can I copy the upload command
> from the actual repository service
The upload command is the upload command is the upload command. It is not bound to any repository service.
Yes, you can try to extract all implementation classes for the actual upload command and create a new one under a new namespace and modify the interesting parts after decompilation. But be warned: Your questions signal that you are a beginner in the KM framework, and the things described so far are more in the direction "hardcore development"...
Hope it helps nevertheless
Detlev -
Dear,
I have developed a object which upload any type of file( mainly excel file ) form desktop.
Now i want to restrict user to upload the excel file , if that file is open in desktop.
Please give me idea how i ll solve this issue ??????
Thanks & Regards,
AjitHi Ajith
If you use the FM-TEXT_CONVERT_XLS_TO_SAP with enabling exception, system will say clearly 'Excel file & cannot be processed'
You might tried without exception.
Still you are not clear send your requirements.
Regards,
Vadamalai A -
How to configure file upload restriction by file extension or size?
Hi,
I have recently configured a 7.0 portal with the BI-JAVA component. A feature for the BW reports and IP iviews is that a user can add comment and even upload a file to a default BI repisotory. It is easy to restrict access to users by means of ACL, but i also want to avoid users from uploading anything apart from *.PDF. It would also be nice to restrict in file size (otherwise it is easy to just rename a file you are uploading). Is there someting available to implement this in the portal?
I have read some threads that state this is not possible by default and only by creating a custom repository service or just hacking the upload command. These threads seem rather old and i dont know if the presented solution is still valid. Does anybody know if SAP is to delever a solution for this? (perhaps in an enhancement pack?)Hi,
Is there someting available to implement this in the portal?
No. You have to develop this functionality.
Have you read this blog: Restricting The Size Of The File To Be Upload in CM Repository ?
https://www.sdn.sap.com/irj/sdn/weblogs?blog=/pub/wlg/3219
Patricio. -
Restrict File Uploads By File Type?
Is there a way to prevent users from uploading files of certain types (for example, exe's)? I know you can restrict what gets indexed, but it seems to me like it would also make sense to restrict users from uploading just anything.
Hi!
Currently there is no such feature.
BTW:
If you restrict the uploads by file type, users will rename the files, upload them, and rename them back to their initial names.
Kind regards, Dirk -
File Upload applet not opening in Query Mode
File Upload Applet is opening in Query Mode in Siebel 7.5, where as in Siebel 7.8 its not opening in Query Mode.
Should anything be changed in CFG? or siebel restricted this?Hi,
There is a property called "Auto Query Mode" in the applet. Check whether this has been set to "New Query" in 7.5. If so the applet will be opening in Query Mode automatically. If this property is blank, in 7.8, the applet will not be opening in Query mode. Check and let me know.
Regards,
Joseph -
Problem with Multi File upload example, help needed
I got the code from the following location.....
http://www.adobe.com/devnet/coldfusion/articles/multifile_upload.html
And I've got it to work to some degree except I cant get the file transfer to work when pressing, Upload. Below is what my debugger outputs. Any thoughts on how to fix this or even what it means?
At the very bottom of this message is the upload.cfm code.......
Thanks in advance for the help
<html>
<head>
<title>Products - Error</title>
</head>
<body>
<h2>Sorry</h2>
<p>An error occurred when you requested this page.
Please email the Webmaster to report this error.
We will work to correct the problem and apologize
for the inconvenience.</p>
<table border=1>
<tr><td><b>Error Information</b> <br>
Date and time: 12/07/09 22:25:51 <br>
Page: <br>
Remote Address: 67.170.79.241 <br>
HTTP Referer: <br>
Details: ColdFusion cannot determine how to process the tag <CFDOCUMENT>. The tag name may be misspelled.<p>If you are using tags whose names begin with CF but are not ColdFusion tags you should contact Allaire Support. <p>The error occurred while processing an element with a general identifier of (CFDOCUMENT), occupying document position (41:4) to (41:70).<p>The specific sequence of files included or processed is:<code><br><strong>D:\hshome\edejham7\edeweb.com\MultiFileUpload\upload.cfm </strong></code><br>
<br>
</td></tr></table>
</body>
</html>
<!---
Flex Multi-File Upload Server Side File Handler
This file is where the upload action from the Flex Multi-File Upload UI points.
This is the handler the server side half of the upload process.
--->
<cftry>
<!---
Because flash uploads all files with a binary mime type ("application/ocet-stream") we cannot set cffile to accept specfic mime types.
The workaround is to check the file type after it arrives on the server and if it is non desireable delete it.
--->
<cffile action="upload"
filefield="filedata"
destination="#ExpandPath('\')#MultiFileUpload\uploadedfiles\"
nameconflict="makeunique"
accept="application/octet-stream"/>
<!--- Begin checking the file extension of uploaded files --->
<cfset acceptedFileExtensions = "jpg,jpeg,gif,png,pdf,flv,txt,doc,rtf"/>
<cfset filecheck = listFindNoCase(acceptedFileExtensions,File.ServerFileExt)/>
<!---
If the variable filecheck equals false delete the uploaded file immediatley as it does not match the desired file types
--->
<cfif filecheck eq false>
<cffile action="delete" file="#ExpandPath('\')#MultiFileUpload\uploadedfiles\#File.ServerFile#"/>
</cfif>
<!---
Should any error occur output a pdf with all the details.
It is difficult to debug an error from this file because no debug information is
diplayed on page as its called from within the Flash UI. If your files are not uploading check
to see if an errordebug.pdf has been generated.
--->
<cfcatch type="any">
<cfdocument format="PDF" overwrite="yes" filename="errordebug.pdf">
<cfdump var="#cfcatch#"/>
</cfdocument>
</cfcatch>
</cftry>Just 2 things in my test:
1) I use no accept attribute. Coldfusion is then free to upload any extenstion.
Restricting the type to application/octet-stream may generate errors. Also, it is unnecessary, because we perform a type check anyway.
2) I have used #ExpandPath('.')#\ in place of #ExpandPath('\')#
<cfif isdefined("form.filedata")>
<cftry>
<cffile action="upload"
filefield="filedata"
destination="#expandPath('.')#\MultiFileUpload\uploadedfiles\"
nameconflict="makeunique">
<!--- Begin checking the file extension of uploaded files --->
<cfset acceptedFileExtensions = "jpg,jpeg,gif,png,pdf,flv,txt,doc,rtf"/>
<cfset filecheck = listFindNoCase(acceptedFileExtensions,File.ServerFileExt)/>
<!---
If the variable filecheck equals false delete the uploaded file immediatley as it does not match the desired file types
--->
<cfif filecheck eq false>
<cffile action="delete" file="#ExpandPath('.')#\MultiFileUpload\uploadedfiles\#File.ServerFile#"/>
<cfoutput>Uploaded file deleted -- unacceptable extension (#ucase(File.ServerFileExt)#)</cfoutput>.<br>
</cfif>
Upload process done!
<cfcatch type="any">
There was an error!
<cfdocument format="PDF" overwrite="yes" filename="errordebug.pdf">
<cfdump var="#cfcatch#"/>
</cfdocument>
</cfcatch>
</cftry>
<cfelse>
<form method="post" action=<cfoutput>#cgi.script_name#</cfoutput>
name="uploadForm" enctype="multipart/form-data">
<input name="filedata" type="file">
<br>
<input name="submit" type="submit" value="Upload File">
</form>
</cfif> -
Rename file extension during a file upload ??
I need to rename the extension of a file at some point during the file upload. I am not sure where to do this at.
The file needs to be renamed before it is written to the directory.
Basically, the file will come in with a .txt or .doc type. Based on a users profile, I will change the type to a non-relavent number such as 1111.
Here is my upload servlet. Can you tell me where to change the type so it will write the file with the new extension?
Thanks.
public class FileExport {
//restrict upload files to 1 Meg
private static final int DEFAULT_MAX_POST_SIZE = 1024 * 1024;
private static final String NO_FILE = "unknown";
private HttpServletRequest req;
private File dir;
private int maxSize;
private Hashtable parameters = new Hashtable(); // name - Vector of values
private Hashtable files = new Hashtable(); // name - UploadedFile
public FileExport(HttpServletRequest request,
String saveDirectory) throws IOException {
this(request, saveDirectory, DEFAULT_MAX_POST_SIZE);
// request the servlet request
// saveDirectory = directory in which to save any uploaded files
// maxPostSize = maximum size of the POST content
public FileExport(HttpServletRequest request,
String saveDirectory,
int maxPostSize) throws IOException {
// check values
if (request == null)
throw new IllegalArgumentException("request cannot be null");
if (saveDirectory == null)
throw new IllegalArgumentException("saveDirectory cannot be null");
if (maxPostSize <= 0) {
throw new IllegalArgumentException("maxPostSize must be positive");
// Save the request, dir, and max size
req = request;
dir = new File(saveDirectory);
maxSize = maxPostSize;
// Check saveDirectory is truly a directory
if (!dir.isDirectory())
throw new IllegalArgumentException("Not a directory: " + saveDirectory);
// Check saveDirectory is writable
if (!dir.canWrite())
throw new IllegalArgumentException("Not writable: " + saveDirectory);
// Now parse the request saving data to "parameters" and "files";
// write the file contents to the saveDirectory
readRequest();
public FileExport(ServletRequest request,
String saveDirectory) throws IOException {
this((HttpServletRequest)request, saveDirectory);
public FileExport(ServletRequest request,
String saveDirectory,
int maxPostSize) throws IOException {
this((HttpServletRequest)request, saveDirectory, maxPostSize);
// Returns the names of all the parameters as an Enumeration of
// Strings. It returns an empty Enumeration if there are no parameters.
public Enumeration getParameterNames() {
return parameters.keys();
// Returns the names of all the uploaded files as an Enumeration of
// Strings. It returns an empty Enumeration if there are no uploaded
// files. Each file name is the name specified by the form, not by
// the user.
public Enumeration getFileNames() {
return files.keys();
// Returns the value of the named parameter as a String, or null if
// the parameter was not sent or was sent without a value.
public String getParameter(String name) {
try {
Vector values = (Vector)parameters.get(name);
if (values == null || values.size() == 0) {
return null;
String value = (String)values.elementAt(values.size() - 1);
return value;
catch (Exception e) {
return null;
// Returns the values of the named parameter as a String array, or null if
// the parameter was not sent.
public String[] getParameterValues(String name) {
try {
Vector values = (Vector)parameters.get(name);
if (values == null || values.size() == 0) {
return null;
String[] valuesArray = new String[values.size()];
values.copyInto(valuesArray);
return valuesArray;
catch (Exception e) {
return null;
// Returns the filesystem name of the specified file, or null if the
// file was not included in the upload. A filesystem name is the name
// specified by the user. It is also the name under which the file is
// actually saved.
public String getFilesystemName(String name) {
try {
UploadedFile file = (UploadedFile)files.get(name);
return file.getFilesystemName(); // may be null
catch (Exception e) {
return null;
// Returns the content type of the specified file (as supplied by the
//client browser), or null if the file was not included in the upload.
public String getContentType(String name) {
try {
UploadedFile file = (UploadedFile)files.get(name);
return file.getContentType(); // may be null
catch (Exception e) {
return null;
// Returns a File object for the specified file saved on the server's
// filesystem, or null if the file was not included in the upload.
public File getFile(String name) {
try {
UploadedFile file = (UploadedFile)files.get(name);
return file.getFile(); // may be null
catch (Exception e) {
return null;
// method that actually parses the request.
protected void readRequest() throws IOException {
// Check the content length to prevent denial of service attacks
int length = req.getContentLength();
if (length > maxSize) {
throw new IOException("Posted content length of " + length +
" exceeds limit of " + maxSize);
// Check the content type to make sure it's "multipart/form-data"
// Access header two ways to work around WebSphere oddities
String type = null;
String type1 = req.getHeader("Content-Type");
String type2 = req.getContentType();
// If one value is null, choose the other value
if (type1 == null && type2 != null) {
type = type2;
else if (type2 == null && type1 != null) {
type = type1;
// If neither value is null, choose the longer value
else if (type1 != null && type2 != null) {
type = (type1.length() > type2.length() ? type1 : type2);
if (type == null ||
!type.toLowerCase().startsWith("multipart/form-data")) {
throw new IOException("Posted content type isn't multipart/form-data");
// Get the boundary string; it's included in the content type.
// Should look something like "------------------------12012133613061"
String boundary = extractBoundary(type);
if (boundary == null) {
throw new IOException("Separation boundary was not specified");
// Construct the special input stream we'll read from
MultipartInputStreamHandler in =
new MultipartInputStreamHandler(req.getInputStream(), length);
// Read the first line, should be the first boundary
String line = in.readLine();
if (line == null) {
throw new IOException("Corrupt form data: premature ending");
// Verify that the line is the boundary
if (!line.startsWith(boundary)) {
throw new IOException("Corrupt form data: no leading boundary");
// Now that we're just beyond the first boundary, loop over each part
boolean done = false;
while (!done) {
done = readNextPart(in, boundary);
// A utility method that reads an individual part. Dispatches to
// readParameter() and readAndSaveFile() to do the actual work. A
// subclass can override this method for a better optimized or
// differently behaved implementation.
protected boolean readNextPart(MultipartInputStreamHandler in,
String boundary) throws IOException {
// Read the first line, should look like this:
// content-disposition: form-data; name="field1"; filename="file1.txt"
String line = in.readLine();
if (line == null) {
// No parts left, we're done
return true;
else if (line.length() == 0) {
// IE4 on Mac sends an empty line at the end; treat that as the end.
// Thanks to Daniel Lemire and Henri Tourigny for this fix.
return true;
// Parse the content-disposition line
String[] dispInfo = extractDispositionInfo(line);
String disposition = dispInfo[0];
String name = dispInfo[1];
String filename = dispInfo[2];
// Now onto the next line. This will either be empty
// or contain a Content-Type and then an empty line.
line = in.readLine();
if (line == null) {
// No parts left, we're done
return true;
// Get the content type, or null if none specified
String contentType = extractContentType(line);
if (contentType != null) {
// Eat the empty line
line = in.readLine();
if (line == null || line.length() > 0) { // line should be empty
throw new
IOException("Malformed line after content type: " + line);
else {
// Assume a default content type
contentType = "application/octet-stream";
// Now, finally, we read the content (end after reading the boundary)
if (filename == null) {
// This is a parameter, add it to the vector of values
String value = readParameter(in, boundary);
if (value.equals("")) {
value = null; // treat empty strings like nulls
Vector existingValues = (Vector)parameters.get(name);
if (existingValues == null) {
existingValues = new Vector();
parameters.put(name, existingValues);
existingValues.addElement(value);
else {
// This is a file
readAndSaveFile(in, boundary, filename, contentType);
if (filename.equals(NO_FILE)) {
files.put(name, new UploadedFile(null, null, null));
else {
files.put(name,
new UploadedFile(dir.toString(), filename, contentType));
return false; // there's more to read
// A utility method that reads a single part of the multipart request
// that represents a parameter. A subclass can override this method
// for a better optimized or differently behaved implementation.
protected String readParameter(MultipartInputStreamHandler in,
String boundary) throws IOException {
StringBuffer sbuf = new StringBuffer();
String line;
while ((line = in.readLine()) != null) {
if (line.startsWith(boundary)) break;
sbuf.append(line + "\r\n"); // add the \r\n in case there are many lines
if (sbuf.length() == 0) {
return null; // nothing read
sbuf.setLength(sbuf.length() - 2); // cut off the last line's \r\n
return sbuf.toString(); // no URL decoding needed
// A utility method that reads a single part of the multipart request
// that represents a file, and saves the file to the given directory.
// A subclass can override this method for a better optimized or
// differently behaved implementation.
protected void readAndSaveFile(MultipartInputStreamHandler in,
String boundary,
String filename,
String contentType) throws IOException {
OutputStream out = null;
// A filename of NO_FILE means no file was sent, so just read to the
// next boundary and ignore the empty contents
if (filename.equals(NO_FILE)) {
out = new ByteArrayOutputStream(); // write to nowhere
// A MacBinary file goes through a decoder
else if (contentType.equals("application/x-macbinary")){
File f = new File(dir + File.separator + filename);
out = new MacBinaryDecoderOutputStream(
new BufferedOutputStream(
new FileOutputStream(f), 8 * 1024));
// A real file's contents are written to disk
else {
File f = new File(dir + File.separator + filename);
out = new BufferedOutputStream(new FileOutputStream(f), 8 * 1024);
byte[] bbuf = new byte[100 * 1024]; // 100K
int result;
String line;
// ServletInputStream.readLine()
// adds a \r\n to the end of the last line.
// Since we want a byte-for-byte transfer, we have to cut those chars.
boolean rnflag = false;
while ((result = in.readLine(bbuf, 0, bbuf.length)) != -1) {
// Check for boundary
if (result > 2 && bbuf[0] == '-' && bbuf[1] == '-') { // quick pre-check
line = new String(bbuf, 0, result, "ISO-8859-1");
if (line.startsWith(boundary)) break;
// Are we supposed to write \r\n for the last iteration?
if (rnflag) {
out.write('\r'); out.write('\n');
rnflag = false;
// Write the buffer, postpone any ending \r\n
if (result >= 2 &&
bbuf[result - 2] == '\r' &&
bbuf[result - 1] == '\n') {
out.write(bbuf, 0, result - 2); // skip the last 2 chars
rnflag = true; // make a note to write them on the next iteration
else {
out.write(bbuf, 0, result);
out.flush();
out.close();
// Extracts and returns the boundary token from a line.
private String extractBoundary(String line) {
// Use lastIndexOf() because IE 4.01 on Win98 has been known to send the
// "boundary=" string multiple times. Thanks to David Wall for this fix.
int index = line.lastIndexOf("boundary=");
if (index == -1) {
return null;
String boundary = line.substring(index + 9); // 9 for "boundary="
// The real boundary is always preceeded by an extra "--"
boundary = "--" + boundary;
return boundary;
// Extracts and returns disposition info from a line, as a String array
// with elements: disposition, name, filename. Throws an IOException
// if the line is malformatted.
private String[] extractDispositionInfo(String line) throws IOException {
// Return the line's data as an array: disposition, name, filename
String[] retval = new String[3];
// Convert the line to a lowercase string without the ending \r\n
// Keep the original line for error messages and for variable names.
String origline = line;
line = origline.toLowerCase();
// Get the content disposition, should be "form-data"
int start = line.indexOf("content-disposition: ");
int end = line.indexOf(";");
if (start == -1 || end == -1) {
throw new IOException("Content disposition corrupt: " + origline);
String disposition = line.substring(start + 21, end);
if (!disposition.equals("form-data")) {
throw new IOException("Invalid content disposition: " + disposition);
// Get the field name
start = line.indexOf("name=\"", end); // start at last semicolon
end = line.indexOf("\"", start + 7); // skip name=\"
if (start == -1 || end == -1) {
throw new IOException("Content disposition corrupt: " + origline);
String name = origline.substring(start + 6, end);
// Get the filename, if given
String filename = null;
start = line.indexOf("filename=\"", end + 2); // start after name
end = line.indexOf("\"", start + 10); // skip filename=\"
if (start != -1 && end != -1) { // note the !=
filename = origline.substring(start + 10, end);
// The filename may contain a full path. Cut to just the filename.
int slash =
Math.max(filename.lastIndexOf('/'), filename.lastIndexOf('\\'));
if (slash > -1) {
filename = filename.substring(slash + 1); // past last slash
if (filename.equals("")) filename = NO_FILE; // sanity check
// Return a String array: disposition, name, filename
retval[0] = disposition;
retval[1] = name;
retval[2] = filename;
return retval;
// Extracts and returns the content type from a line, or null if the
// line was empty. Throws an IOException if the line is malformatted.
private String extractContentType(String line) throws IOException {
String contentType = null;
// Convert the line to a lowercase string
String origline = line;
line = origline.toLowerCase();
// Get the content type, if any
if (line.startsWith("content-type")) {
int start = line.indexOf(" ");
if (start == -1) {
throw new IOException("Content type corrupt: " + origline);
contentType = line.substring(start + 1);
else if (line.length() != 0) { // no content type, so should be empty
throw new IOException("Malformed line after disposition: " + origline);
return contentType;
// A class to hold information about an uploaded file.
class UploadedFile {
private String dir;
private String filename;
private String type;
UploadedFile(String dir, String filename, String type) {
this.dir = dir;
this.filename = filename;
this.type = type;
public String getContentType() {
return type;
public String getFilesystemName() {
return filename;
public File getFile() {
if (dir == null || filename == null) {
return null;
else {
return new File(dir + File.separator + filename);
// A class to aid in reading multipart/form-data from a ServletInputStream.
// It keeps track of how many bytes have been read and detects when the
// Content-Length limit has been reached.
class MultipartInputStreamHandler {
ServletInputStream in;
int totalExpected;
int totalRead = 0;
byte[] buf = new byte[8 * 1024];
public MultipartInputStreamHandler(ServletInputStream in,
int totalExpected) {
this.in = in;
this.totalExpected = totalExpected;
// Reads the next line of input. Returns null to indicate the end
// of stream.
public String readLine() throws IOException {
StringBuffer sbuf = new StringBuffer();
int result;
String line;
do {
result = this.readLine(buf, 0, buf.length); // this.readLine() does +=
if (result != -1) {
sbuf.append(new String(buf, 0, result, "ISO-8859-1"));
} while (result == buf.length); // loop only if the buffer was filled
if (sbuf.length() == 0) {
return null; // nothing read, must be at the end of stream
sbuf.setLength(sbuf.length() - 2); // cut off the trailing \r\n
return sbuf.toString();
// A pass-through to ServletInputStream.readLine() that keeps track
// of how many bytes have been read and stops reading when the
// Content-Length limit has been reached.
public int readLine(byte b[], int off, int len) throws IOException {
if (totalRead >= totalExpected) {
return -1;
else {
if (len > (totalExpected - totalRead)) {
len = totalExpected - totalRead; // keep from reading off end
int result = in.readLine(b, off, len);
if (result > 0) {
totalRead += result;
return result;
// Class to filters MacBinary files to normal files on the fly
// Optimized for speed more than readability
class MacBinaryDecoderOutputStream extends FilterOutputStream {
int bytesFiltered = 0;
int dataForkLength = 0;
public MacBinaryDecoderOutputStream(OutputStream out) {
super(out);
public void write(int b) throws IOException {
// Bytes 83 through 86 are a long representing the data fork length
// Check <= 86 first to short circuit early in the common case
if (bytesFiltered <= 86 && bytesFiltered >= 83) {
int leftShift = (86 - bytesFiltered) * 8;
dataForkLength = dataForkLength | (b & 0xff) << leftShift;
// Bytes 128 up to (128 + dataForkLength - 1) are the data fork
else if (bytesFiltered < (128 + dataForkLength) && bytesFiltered >= 128) {
out.write(b);
bytesFiltered++;
public void write(byte b[]) throws IOException {
write(b, 0, b.length);
public void write(byte b[], int off, int len) throws IOException {
// If the write is for content past the end of the data fork, ignore
if (bytesFiltered >= (128 + dataForkLength)) {
bytesFiltered += len;
// If the write is entirely within the data fork, write it directly
else if (bytesFiltered >= 128 &&
(bytesFiltered + len) <= (128 + dataForkLength)) {
out.write(b, off, len);
bytesFiltered += len;
// Otherwise, do the write a byte at a time to get the logic above
else {
for (int i = 0 ; i < len ; i++) {
write(b[off + i]);I am also need to rename a file and extension while uploadinf the file to the server. The oreilly example seems only save as the same file name and ext. I wonder if you have the ability chANGE OIT OR NOT. pLEASE LET ME KNOW
thanks
kansen -
File Upload extension that doesn't time out?!
Can anyone recommend a good File Upload utility that won't
time out on a
shared server? Ideally ASP/VBScript.
Restrictions on our shared server mean that we only have 15
seconds to
execute a script.
My concern is that this just isn't going to be possible on a
shared server
because if someone wants to upload a 3MB image then it's,
naturally, going
to take more than 15 seconds.
Would appreciate any advice, thanks.
Regards
Nath.This is not a script issue, but a server issue. You would
need to talk to
your host.
Murray --- ICQ 71997575
Adobe Community Expert
(If you *MUST* email me, don't LAUGH when you do so!)
==================
http://www.projectseven.com/go
- DW FAQs, Tutorials & Resources
http://www.dwfaq.com - DW FAQs,
Tutorials & Resources
==================
"tradmusic.com" <[email protected]> wrote in
message
news:fu1qrl$r6e$[email protected]..
> Can anyone recommend a good File Upload utility that
won't time out on a
> shared server? Ideally ASP/VBScript.
> Restrictions on our shared server mean that we only have
15 seconds to
> execute a script.
>
> My concern is that this just isn't going to be possible
on a shared server
> because if someone wants to upload a 3MB image then
it's, naturally, going
> to take more than 15 seconds.
>
> Would appreciate any advice, thanks.
>
> Regards
> Nath.
> -
File Upload PJC
I have installed the File Upload PJC demo & got it working.
We are using Forms 6i patch 8 with servlet configuration, iAS 1.0.2.2.1 on Win 2000, Oracle 8.173
We want to upload/download files to the server & save them as BFILES in the database. I think I am on the right track but have some questions:
What do I have to change in the PJC to increase the memory so I can upload a file > 4 MB? We will be uploading some large files. I'd also like to ability to select multiple files to upload. I don't know much about Java programming but will learn if this is the best way to accomplish this.
I want to upgrade to Forms patch 12. I understand that it uses Jinitiator 1.3 & that it will popup a dialog when it sees a new signed Jar file & will automatically import the certificate if the user decides to trust it - but I read on the Technet forum there is a bug 2483719 - does this work with patch 12?
We also want to use the Native JVM for IE (when it will work with XP - is this patch 13?). What do we have to change if we create a signed CAB file?
We also need the reverse to download a file to the client - WITHOUT using web.show_document - since this does not always prompt you with a save dialog box & tries to open the file in the browser.
Any ideas will be helpful - thanks.
[email protected]Laura,
these are many questions in one post and I try to answer it as good as I can
We want to upload/download files to the server & save them as BFILES in the database. I think I am on the right track but have some questions:
What do I have to change in the PJC to increase the memory so I can upload a file > 4 MB? We will be uploading some large files.
As far as I know there is no restriction to the size of the file uploaded to the server. There exist a recommendation of to which size this bean has been tested. Due to the implementation of the Bean there are defined chunk sizes for the data passed, but this does not limit the size of a downloaded file.
I'd also like to ability to select multiple files to upload. I don't know much about Java programming but will learn if this is the best way to accomplish this.
Actually you will have to change the code then. First you need to set a porperty on the file dialog allowing the selection of multiple files. Next you will have to handle multiple files in the bean code. Yes, without Java you will not get there.
want to upgrade to Forms patch 12. I understand that it uses Jinitiator 1.3 & that it will popup a dialog when it sees a new signed Jar file & will automatically import the
certificate if the user decides to trust it - but I read on the Technet forum there is a bug 2483719 - does this work with patch 12?
The problem is that you use a different (custom) signature for the upload bean, after modifying it, that requires the user to first grant it permissions. The bug means that this currently cannot be handled with Jinitiator 1.3.x. The work around is explained in a Whitepaper on OTN about signing Java Bean in Forms (Forms9i collateral section). There is no dependency to teh Forms patch you use, but to Jinitiator. So yes, teh work around will work there.
We also want to use the Native JVM for IE (when it will work with XP - is this patch 13?).
Possibly. That's the target patch.
What do we have to change if we create a signed CAB file?
You'll have to use the Microsoft SDK and refer to their documentation on how to create and use signed cab files. Shoudl be no big difference though.
We also need the reverse to download a file to the client - WITHOUT using web.show_document - since this does not always prompt you with a save dialog box & tries to
open the file in the browser.
This is a problems with files that the Browser has a MIME type map for. If you download a file with the .gif extension, then this is a known MIME type configured in the HTTP Server. Therefore the Browser recognizes that the downloaded stream is a gif file and tries to render it. You can work around it by making sure that the downloaded file extension is not knwon by the HTTP server (Mime type application/word).
Frank -
Output file size restrictions - HD Video for YouTube
For over a year YouTube has removed restrictions on file sizes for individuals that want to do so. The preset output in Premier Elements 11 for "Online - HD Video for YouTube 1920X1080" will not allow a video longer than 15 minutes. I need to remove this restriction and be able to produce files to upload to YouTube without file size restrictions. How can I do this?
TheBanjoNut
You cannot. And, Premiere Elements 12 has the same YouTube limitations as 11.
You need to export your Timeline to a file saved to the computer hard drive, and then upload that file to YouTube at the YouTube web site.
At YouTube, you would need to explore the opportunities that it offers in the way of "extended times". It may require special accounts.
Without further details of your Premiere Elements project preset and the properties of your source media, I would generalize and suggest that you look at the follow choices for creating this file for upload to YouTube at the YouTube web site...
Publish+Share
Computer
AVCHD
with Presets =
MP4 - H.264 1920 x 1080p30
or
YouTube Widescreen HD (changing the settings under the Advanced Button/Video Tab of the preset)
Please review. If you have any further questions on this, please do not hesitate to ask.
Thanks.
ATR -
How to use file upload component inside a portlet
Hi
Thank you for reading my post.
does file upload works inside portlets ?
can some one help me with a sample code , does it need some tricks ?
Thank youany help is welcomeLegolas,
You could try your own implementation. Someone was able to implement a file upload with Creator 2004Q4 and the O'Reilly Servlet. See http://swforum.sun.com/jive/thread.jspa?forumID=123&threadID=50186.
You will have to configure O'Reilly Servlet's "MultiPart Filter" in your application. Creator 2 uses a same approach (a filter) to accomplish this. Given that the file upload component is not supported on portlets, this leads me to the following: I don't know anything about portlets and portlet containers, but I'd check first for some architechtural restriction in the portlet subsystem that avoids the use of a filter for a file upload. If think this could be the only thing that will restrict you to implement your own file upload.
Hope this helps.
Antonio -
I m storing the attatchments in java table as binary data.Is there any restriction on the size of the attachmnents? Also while Downloading the file the name of the file is not visible.
Please help me on this issue.BHAVANA,
There is ceratin size limits on file upload imposed by some browsers (AFAIK, 1.5-2 Mb).
There is some gotchas will FileDownlad / FileUpload in NW04 -- complete file content must be in memory. So server memory size is other limit.
Regarding name. Please post code where are you manipulating IWDBinaryType / IWDResource. Probably error is there.
VS -
ICR - File Upload, FBICRC_S_UPLOAD is missing
Dear experts,
I want to expand the Data Selection Process of ICR to manual file upload.
I also read the following thread, which explains how to involve Companies via file import.
Thread: IC reconciliation process with file import
Problem 1:
In this thread its mentioned that I could use the delivered structure FBICRC_S_UPLOAD.
But unfortunately this structure is missing in my system.
Has somebody an explanation for this?
Problem 2:
Alternative I used structure FBICRC_S_SELECT_003 for the manual company.
But when I want to upload a file during data selection, the process displays me that "Buchungskreis" is missing in the file. But when I take a look at the structure FBICRC_S_SELECT_003 no field is named "Buchungskreis".
Does somebody has an explanation for this behaviour?
Thank you in advance for all answeres
TomHello Sebastian,
#1 If I am understanding you correctly you have 2 entries for each company in FBIC032 - one to select customer/vendor open items and one to select GL open items. However, when you run FBICS3 for these companies only AR/AP open items are selected and transferred. Is that correct? What is the result if you run data selection for GL open items only, i.e. if you specify the corresponding SEQNR on the selection screen (hint: you may have to enter the command ADMIN in the OK code field in order to see the field on the selection screen).
#2 You assigned documents to each other and they are not shown in the bottom part of the display. Were there any differences in the document groups you created? If not, are the document groups shown when you use function Without differences?
#3 If you run data selection, automatic assignment, interactive reconciliation (making additional assignments) and then run data selection again no assignments should be deleted. This would only happen if you deleted the transactional data.
#4 Please check your definition of object groups and sets. Do the used sets actually contain values? Did you also apply the corrections referred to in note https://service.sap.com/sap/support/notes/1267185 - especially note https://service.sap.com/sap/support/notes/1062292 ?
#5 Is the selection of GL open items taking long or is it the combination of GL open items plus AR/AP open items? How many data records are transferred and how long does this take?
#6 Since there are usually various sender systems and sender companies with different operative accounts involved in ICR and data selection is usually a central process (scheduled as a batch job and not run by the individual users) the only way to restrict GL accounts is to implement the BADI. The BADI method can be implemented taking into account which sender system and which sender companies are involved.
Hope this helps,
Ralph -
Hi all,
I need to upload file from user local computer into Web Dynpro context, but standard FileUpload component doesn't look very "attractive" to me. There are 3 main reasons:
1. when user don't use Browse functionality, but he/she types directly for example == "xxxx" (not valid absolute windows path) into input field of FU Component and then click Upload, application freeze - and loading that 'file' forever.....
2. don't know how to specify custom file types in showed FileChooser (predefined are AllFiles, Pictures, HTML)
3. Browse label is not internationalized, no possibility to change that text (and that button also looks "different" )
How can I eliminate these minuses, or is here alternative solution for file uploading file in WD? My customer environment is NW 2004.
Regards,
JurajDynpro UI elements has limitations. But we can use them the way we want within these limitations.
1. when user don't use Browse functionality, but he/she types directly for example == "xxxx" (not valid absolute windows path) into input field of FU Component and then click Upload, application freeze - and loading that 'file' forever.....
If there is a fixed place to hold the documents, we can prefix the path upto the filename.
2. don't know how to specify custom file types in showed FileChooser (predefined are AllFiles, Pictures, HTML)
we can get the MIME type from the resource. And further processing can be restricted.
3. Browse label is not internationalized, no possibility to change that text (and that button also looks "different" )
I Agree that we can't change "Browse", but still we can have the orientation, if your browser is Arabic, it got aligned at right hand side.
thread:
nikhil
Edited by: Nikhil ßos on Jul 3, 2008 1:07 PM
Maybe you are looking for
-
I'd just like to make a remark (and possibly open the floor to discussion) that I've been reading a lot of grief about Adobe's move to CC. I've recently experienced a spat of CC syncing outages as well as missing files as Adobe attempts to collect th
-
winwows media player its not respondig and dont play audio
-
Panasonic BD87 WiFi Connection...
Greetings! We just recently purchased a Panasonic Viera plasma TV with a Panasonic BD87 BlueRay player. The Geek Squad set it up, and everything works fine except... The Blue Ray player won't maintain a connection to the internet. The connection
-
Problem editing altoghther, cant play footage
When I try to playback a FCP piece of footage I get "One or more frames were dropped during playback." This happens every half second it only gets through a 4 or 5 frames before it stops on account of this error. But it also gives me this as well "In
-
PE 9 mußte nach Defekt des PCs neu aufgesetzt werden. Jetzt soll ich es erneut kaufen.
PE 9 war auf der SSD meines neuen PCs installiert und funktionierte einwandfrei bis die SSD defekt war. Sie wurde im Rahmen der Gewährleistung ausgetauscht und PE 9 neu aufgespielt (bei der Lieferfirma des PCs). Jetzt teilt Adobe mir im Rahmen von PE