Да. Это возможно.
Html
JS
function showMyImage(fileInput) {
var files = fileInput.files;
for (var i = 0; i < files.length; i++) {
var file = files[i];
var imageType = /image.*/;
if (!file.type.match(imageType)) {
continue;
}
var img=document.getElementById("thumbnil");
img.file = file;
var reader = new FileReader();
reader.onload = (function(aImg) {
return function(e) {
aImg.src = e.target.result;
};
})(img);
reader.readAsDataURL(file);
}
}
Здесь вы можете получить Live Demo .
Два ответа я не могу думать... ни об одном, особенно так же приятны как просто наличие оператора конкатенации.
Первый, используйте NSMutableString
, который имеет appendString
метод, устраняя часть необходимости в дополнительных временных строках.
NSArray
для конкатенации через componentsJoinedByString
метод.
Единственный способ сделать c = [a stringByAppendingString: b]
немного короче состоит в том, чтобы использовать автоматическое заполнение приблизительно в эти st
точка. +
оператор является частью C, который не знает об объектах Objective C.
[NSString stringWithFormat:@"%@/%@/%@", one, two, three];
я предполагаю, что Вы не довольны несколькими, добавляет (a+b+c+d), в этом случае Вы могли сделать:
NSLog(@"%@", [Util append:one, @" ", two, nil]); // "one two"
NSLog(@"%@", [Util append:three, @"/", two, @"/", one, nil]); // three/two/one
использование чего-то как
+ (NSString *) append:(id) first, ...
{
NSString * result = @"";
id eachArg;
va_list alist;
if(first)
{
result = [result stringByAppendingString:first];
va_start(alist, first);
while (eachArg = va_arg(alist, id))
result = [result stringByAppendingString:eachArg];
va_end(alist);
}
return result;
}
NSString *label1 = @"Process Name: ";
NSString *label2 = @"Process Id: ";
NSString *processName = [[NSProcessInfo processInfo] processName];
NSString *processID = [NSString stringWithFormat:@"%d", [[NSProcessInfo processInfo] processIdentifier]];
NSString *testConcat = [NSString stringWithFormat:@"%@ %@ %@ %@", label1, processName, label2, processID];
Ярлык путем создания макроса AppendString (AS) ...
#define AS(A,B) [(A) stringByAppendingString:(B)]
NSString *myString = @"This"; NSString *test = AS(myString,@" is just a test");
Примечание:
Если вы используете макрос, конечно, просто делайте это с переменными аргументами, см. Ответ EthanB.
NSString *label1 = @"Process Name: ";
NSString *label2 = @"Process Id: ";
NSString *processName = [[NSProcessInfo processInfo] processName];
NSString *processID = [NSString stringWithFormat:@"%d", [[NSProcessInfo processInfo] processIdentifier]];
NSString *testConcat = [NSString stringWithFormat:@"%@ %@ %@ %@", label1, processName, label2, processID];
Используйте этот способ:
NSString *string1, *string2, *result;
string1 = @"This is ";
string2 = @"my string.";
result = [result stringByAppendingString:string1];
result = [result stringByAppendingString:string2];
ИЛИ
result = [result stringByAppendingString:@"This is "];
result = [result stringByAppendingString:@"my string."];